nextcloud / server

☁️ Nextcloud server, a safe home for all your data
https://nextcloud.com
GNU Affero General Public License v3.0
27.46k stars 4.08k forks source link

Cannot view PDF when '%' percent sign in file name #25750

Closed bpress closed 3 years ago

bpress commented 3 years ago

How to use GitHub

Steps to reproduce

  1. Upload anywhere a pdf with a percent character in its file name, eg. "test-%-this.pdf"
  2. Try to view the pdf using the inline pdf viewer
  3. wait forever

Expected behaviour

The pdf should open

Actual behaviour

The ajax wait loader spins indefinitely The javascript console shows this error:

viewer-main.js?v=396a1dd5-10:403 URIError: URI malformed at decodeURIComponent () at Object.i [as normalisePath] (viewer-main.js?v=396a1dd5-10:14) at m (viewer-main.js?v=396a1dd5-10:39) at viewer-main.js?v=396a1dd5-10:39

Server configuration

Operating system: Debian 9

Web server: Nginx 1.18.0

Database: MySQL 8.0.22

PHP version: 7.3.23

Nextcloud version: (see Nextcloud admin page) 20.0.7

Updated from an older Nextcloud/ownCloud or fresh install: Updated from 19

Where did you install Nextcloud from: Original install via nextcloud.com package

Signing status:

Signing status ``` No errors have been found. ```

List of activated apps:

App list ``` Enabled: - accessibility: 1.6.0 - activity: 2.13.4 - admin_audit: 1.10.0 - cloud_federation_api: 1.3.0 - comments: 1.10.0 - contactsinteraction: 1.1.0 - dav: 1.16.2 - federatedfilesharing: 1.10.2 - files: 1.15.0 - files_markdown: 2.3.1 - files_pdfviewer: 2.0.1 - files_readmemd: 1.2.0 - files_rightclick: 0.17.0 - files_sharing: 1.12.2 - files_trashbin: 1.10.1 - files_versions: 1.13.0 - files_videoplayer: 1.9.0 - groupfolders: 8.2.0 - logreader: 2.5.0 - lookup_server_connector: 1.8.0 - notifications: 2.8.0 - oauth2: 1.8.0 - password_policy: 1.10.1 - privacy: 1.4.0 - provisioning_api: 1.10.0 - recommendations: 0.8.0 - richdocuments: 3.7.14 - serverinfo: 1.10.0 - settings: 1.2.0 - sharebymail: 1.10.0 - spreed: 10.1.2 - support: 1.3.0 - survey_client: 1.8.0 - systemtags: 1.10.0 - text: 3.1.0 - theming: 1.11.0 - twofactor_backupcodes: 1.9.0 - updatenotification: 1.10.0 - user_status: 1.0.1 - viewer: 1.4.0 - weather_status: 1.0.0 - workflowengine: 2.2.0 Disabled: - audioplayer - dashboard - encryption - federation - files_accesscontrol - files_external - firstrunwizard - inimdistributorsapp - nextcloud_announcements - occweb - photos - user_ldap ```

Nextcloud configuration:

Config report ``` { "system": { "instanceid": "***REMOVED SENSITIVE VALUE***", "passwordsalt": "***REMOVED SENSITIVE VALUE***", "secret": "***REMOVED SENSITIVE VALUE***", "trusted_domains": [ "drive.inimcloud.com" ], "datadirectory": "***REMOVED SENSITIVE VALUE***", "overwrite.cli.url": "https:\/\/drive.inimcloud.com", "dbtype": "mysql", "version": "20.0.7.1", "dbname": "***REMOVED SENSITIVE VALUE***", "dbhost": "***REMOVED SENSITIVE VALUE***", "dbport": "", "dbtableprefix": "oc_", "mysql.utf8mb4": true, "dbuser": "***REMOVED SENSITIVE VALUE***", "dbpassword": "***REMOVED SENSITIVE VALUE***", "installed": true, "logtimezone": "UTC", "mail_from_address": "***REMOVED SENSITIVE VALUE***", "mail_smtpmode": "smtp", "mail_domain": "***REMOVED SENSITIVE VALUE***", "activity_expire_days": 7, "updatechecker": true, "maintenance": false, "theme": "", "loglevel": 2, "log_rotate_size": 134217728, "filelocking.enabled": true, "memcache.local": "\\OC\\Memcache\\Redis", "memcache.distributed": "\\OC\\Memcache\\Redis", "memcache.locking": "\\OC\\Memcache\\Redis", "redis": { "host": "***REMOVED SENSITIVE VALUE***", "port": 6379 }, "skeletondirectory": "", "tempdirectory": "\/nextcloud\/tmp", "updater.release.channel": "stable", "logfile": "\/logs\/nextcloud.log", "mail_smtphost": "***REMOVED SENSITIVE VALUE***", "mail_sendmailmode": "smtp", "mail_smtpport": "25", "objectstore": { "class": "OC\\Files\\ObjectStore\\S3", "arguments": { "bucket": "inim-nextcloud-1", "autocreate": true, "key": "***REMOVED SENSITIVE VALUE***", "secret": "***REMOVED SENSITIVE VALUE***", "use_ssl": true, "region": "eu-south-1" } } } }```

Are you using external storage, if yes which one: AWS S3

Are you using encryption: no

Are you using an external user-backend, if yes which one: none

Client configuration

Browser: Chrome 88.0.4324.182

Operating system: MacOS 11.2

Logs

Web server error log

Web server error log ``` [22/Feb/2021:18:37:50 +0100] "drive.inimcloud.com" "GET /ocs/v2.php/apps/notifications/api/v2/notifications HTTP/2.0" 45.33.232.93 - "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36" "-" 200 1128 60 0.390 229 - TLSv1.2 172.22.28.18 BYPASS 172.22.28.97:11010 [22/Feb/2021:18:37:52 +0100] "drive.inimcloud.com" "PROPFIND /remote.php/dav/files/inim/Distributori/C0000016-DSA%20MED%20s%20r%20l/Financial/Attestato%20esempio_%25ITA%25_C-FINANCIAL_05052020.pdf HTTP/2.0" 45.33.232.93 - "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36" "-" 207 955 795 0.543 231 - TLSv1.2 172.22.28.18 - 172.22.28.96:11010 ```

Nextcloud log (data/nextcloud.log)

Nextcloud log ``` (no relevant log around the error event time) ```

Browser log

Browser log ``` 18:37:52.073 viewer-main.js?v=396a1dd5-10:403 URIError: URI malformed at decodeURIComponent () at Object.i [as normalisePath] (viewer-main.js?v=396a1dd5-10:14) at m (viewer-main.js?v=396a1dd5-10:39) at viewer-main.js?v=396a1dd5-10:39 (anonymous) @ viewer-main.js?v=396a1dd5-10:403 l @ vendors~sharing.js:331 (anonymous) @ vendors~sharing.js:331 forEach.t. @ vendors~sharing.js:331 ae @ viewer-main.js?v=396a1dd5-10:403 s @ viewer-main.js?v=396a1dd5-10:403 Promise.then (async) ae @ viewer-main.js?v=396a1dd5-10:403 a @ viewer-main.js?v=396a1dd5-10:403 (anonymous) @ viewer-main.js?v=396a1dd5-10:403 (anonymous) @ viewer-main.js?v=396a1dd5-10:403 openFile @ viewer-main.js?v=396a1dd5-10:403 file @ viewer-main.js?v=396a1dd5-10:403 fr.run @ viewer-main.js?v=396a1dd5-10:14 cr @ viewer-main.js?v=396a1dd5-10:14 (anonymous) @ viewer-main.js?v=396a1dd5-10:14 Xe @ viewer-main.js?v=396a1dd5-10:14 Promise.then (async) Ye @ viewer-main.js?v=396a1dd5-10:14 tt @ viewer-main.js?v=396a1dd5-10:14 (anonymous) @ viewer-main.js?v=396a1dd5-10:14 fr.update @ viewer-main.js?v=396a1dd5-10:14 le.notify @ viewer-main.js?v=396a1dd5-10:14 set @ viewer-main.js?v=396a1dd5-10:14 value @ viewer-main.js?v=396a1dd5-10:424 N @ viewer-main.js?v=396a1dd5-10:339 action @ merged-index.js?v=396a1dd5-10:2931 _onClickFile @ merged-index.js?v=396a1dd5-10:4797 He @ main.js?v=396a1dd5-10:1 (anonymous) @ main.js?v=396a1dd5-10:1 (anonymous) @ main.js?v=396a1dd5-10:1 dispatch @ main.js?v=396a1dd5-10:1 v.handle @ main.js?v=396a1dd5-10:1 ```
kesselb commented 3 years ago

Looks like https://github.com/nextcloud/viewer/issues/415.