Repository navigation
fix(global): parseFileExtensionFromUrl 在文件名含 % 时返回空扩展名 - #8015
Merged
c121914yu merged 2 commits intoOct 19, 2026
Merged
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
c121914yu
approved these changes
Oct 19, 2026
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.
问题
parseFileExtensionFromUrl对URLSearchParams.get()已解码的filename/name再次执行decodeURIComponent。文件名包含%时会抛出URIError,随后回退到没有扩展名的代理路径,导致返回空字符串。例如:
?filename=100%25%20done.pdf应返回pdf,?name=50%25off.xlsx应返回xlsx。修改
直接对查询参数返回的文件名提取扩展名,删除重复解码及其局部异常回退。查询参数只解码一次,因此原始文件名中的字面量
%2E、%70会被保留,避免误造或改写扩展名;优先采用filename/name查询参数,无可用后缀时回退到原始链接。验证
pnpm test packages/global/test/common/string/string.test.ts packages/global/test/common/string/tools.test.ts:2 个文件、41 个测试通过。%文件名,以及字面量report%2Epdf、report.%70df的后缀解析。git diff --check通过。AI assistance: this change was prepared with an AI coding assistant.