fix: URL-encode filenames with special characters to prevent 404 errors#645
Merged
fix: URL-encode filenames with special characters to prevent 404 errors#645
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Properly encodes filenames with
encodeURIComponent(JS) andurl.PathEscape(Go) before interpolating them into URL paths across the webapp, Go SDK, and server responses.Why
Previously, filenames containing characters like
#, spaces, or parentheses were interpolated verbatim into URL paths. A filename like#test.txtwould send a request to/file/ID/ID/, treating#test.txtas a URL fragment delimiter, resulting in a404 Not Founderror.Changes
api.js): AddedencodeURIComponent()foruploadFile,removeFile,getFileURL, andgetArchiveURL.plik/internal.go,plik/file.go): Addedurl.PathEscape()for all upload, download, and remove URL constructions.add_file.go): Addedurl.PathEscape()to the quick-mode URL response. Renamed localurlstring variable tofileURLto prevent shadowing thenet/urlimport.Testing
TestUploadFileWithSpecialCharsandTestQuickUploadWithSpecialCharsinplik/z1_e2e_test.goto verify URL-encoding end-to-end.uploads a file with special characters in nameinwebapp/e2e/upload.spec.jsto verify the web UI upload flow.make testandmake test-frontend-e2e).