-
-
Notifications
You must be signed in to change notification settings - Fork 4.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
File with plus (+) character stored on external WebDAV storage disappear #15849
Comments
I increased the log level to capture some additional data. It looks to me like the file name gets decoded twice.
|
I looked through the code to figure out where
in lib/private/Files/Storage/DAV.php The external WebDAV server apparently returns Replacing the line with
and further changing
to
in However, is the fix necessary for WebDAV in general or is the https://www.magentacloud.de/ WebDAV implementation broken? |
Can anyone comment on this (potential) issue? |
Hi, Thanks for your bug report and sorry to see you have this problem. I notice nobody has had time to respond... As this more of a corner case, it will not be high priority so it can take a lot of time before somebody has time for it... If you are familiar with PHP, help is welcome! If you need this fixed urgently and can't do it yourself, or need it to test Nextcloud for use in your business, we would be happy to make time for you. See nextcloud.com/enterprise for more information about Nextcloud Enterprise and options for help with a proof of concept. |
Not so corner case, multiple people have reported this issue 3 years ago, which was closed even though users made clear the problem was not fixed. |
Is this Issue still valid? If not, please close this issue. Thanks! :) |
I gave up on WebDAV when it became clear that the issue won't be fixed and I got the impression that WebDAV support is not a priority. Therefore I can't confirm that the bug still exists. However, in the history https://github.com/nextcloud/server/commits/master/lib/private/Files/Storage/DAV.php I see no attempt to address it. |
This issue has been automatically marked as stale because it has not had recent activity and seems to be missing some essential information. It will be closed if no further activity occurs. Thank you for your contributions. |
Not stale, just waiting to be fixed |
Does this only happen for magentacloud webdav connections for you or also for other webdav connetions? |
This issue has been automatically marked as stale because it has not had recent activity and seems to be missing some essential information. It will be closed if no further activity occurs. Thank you for your contributions. |
I can confirm that this happens with my own QNAP webdav server, too. |
Kindly reopen this case. It is not stale, just unattended, which surprises me after so long time! The bug seems frequent on every Nextcloud installation I have tested. '+' i frequent in Windows filenames and the Nextcloud behaviour makes Nextcloud practically unusable. |
PHP's urldecode function does not decode URLs according to RFC 3986, but according to the HTML 4.01 query parameter encoding. This results in pluses being wrongly decoded to spaces even though they should not be decoded at all. Use rawurldecode instead, which follows RFC 3986 properly. This fixes an issue where files on DAV shares containing pluses were incorrectly decoded to spaces. Fixes nextcloud#15849
PHP's urldecode function does not decode URLs according to RFC 3986, but according to the HTML 4.01 query parameter encoding. This results in pluses being wrongly decoded to spaces even though they should not be decoded at all. Use rawurldecode instead, which follows RFC 3986 properly. This fixes an issue where files on DAV shares containing pluses were incorrectly decoded to spaces. Fixes: nextcloud#15849 Signed-off-by: Lorenz Brun <lorenz@brun.one>
PHP's urldecode function does not decode URLs according to RFC 3986, but according to the HTML 4.01 query parameter encoding. This results in pluses being wrongly decoded to spaces even though they should not be decoded at all. Use rawurldecode instead, which follows RFC 3986 properly. This fixes an issue where files on DAV shares containing pluses were incorrectly decoded to spaces. Fixes: nextcloud#15849 Signed-off-by: Lorenz Brun <lorenz@brun.one>
PHP's urldecode function does not decode URLs according to RFC 3986, but according to the HTML 4.01 query parameter encoding. This results in pluses being wrongly decoded to spaces even though they should not be decoded at all. Use rawurldecode instead, which follows RFC 3986 properly. This fixes an issue where files on DAV shares containing pluses were incorrectly decoded to spaces. Fixes: #15849 Signed-off-by: Lorenz Brun <lorenz@brun.one>
PHP's urldecode function does not decode URLs according to RFC 3986, but according to the HTML 4.01 query parameter encoding. This results in pluses being wrongly decoded to spaces even though they should not be decoded at all. Use rawurldecode instead, which follows RFC 3986 properly. This fixes an issue where files on DAV shares containing pluses were incorrectly decoded to spaces. Fixes: #15849 Signed-off-by: Lorenz Brun <lorenz@brun.one>
PHP's urldecode function does not decode URLs according to RFC 3986, but according to the HTML 4.01 query parameter encoding. This results in pluses being wrongly decoded to spaces even though they should not be decoded at all. Use rawurldecode instead, which follows RFC 3986 properly. This fixes an issue where files on DAV shares containing pluses were incorrectly decoded to spaces. Fixes: #15849 Signed-off-by: Lorenz Brun <lorenz@brun.one>
PHP's urldecode function does not decode URLs according to RFC 3986, but according to the HTML 4.01 query parameter encoding. This results in pluses being wrongly decoded to spaces even though they should not be decoded at all. Use rawurldecode instead, which follows RFC 3986 properly. This fixes an issue where files on DAV shares containing pluses were incorrectly decoded to spaces. Fixes: #15849 Signed-off-by: Lorenz Brun <lorenz@brun.one>
I noticed an issue that seems similar to #7762 but the behavior is slightly different and more worrisome from my perspective. Whenever I put a file with a plus character in its file name in a folder it disappears.
Any ideas what I can try to avoid the problem or to collect more details?
Steps to reproduce
Expected behaviour
"Plus+file.txt" should be listed, available to download and sync to local drive
This is what happens when adding the same file to an internal folder
Actual behaviour
"Plus+file.txt" is not listed anymore
However, it does exist on the WebDAV storage
Also when trying to upload again a conflict is shown
Server configuration
Operating system: Not exactly sure, shared web server at Host Europe
Web server: Not exactly sure, shared web server at Host Europe
Database: mysql 5.6.43
PHP version: 7.2.18
Nextcloud version: (see Nextcloud admin page) 16.0.1.1
Updated from an older Nextcloud/ownCloud or fresh install: Updated from ownCloud but external storage was only added after updating
Where did you install Nextcloud from: Nextcloud website
Signing status:
Signing status
List of activated apps:
App list
Nextcloud configuration:
Config report
Are you using external storage, if yes which one: WebDAV
Are you using encryption: yes
Are you using an external user-backend, if yes which one:
Client configuration
Browser: Firefox, Edge and likely any other browser
Operating system: Windows 10
Logs
Web server error log
Web server error log
Nextcloud log (data/nextcloud.log)
Nextcloud log
Browser log
Browser log
The text was updated successfully, but these errors were encountered: