You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Chrome与Edge浏览器从Content-Disposition头截断长文件名问题求助

Chrome与Edge浏览器从Content-Disposition头截断长文件名问题求助

各位大佬,我碰到个棘手的问题,想请大家帮忙分析下:

我在服务器上存了一个文件名长达254字符的文件,尝试下载时出现了奇怪的差异:

  • 用Postman下载时,不管是响应头里的文件名,还是最终保存的文件名,都是完整的254字符,这个测试用的文件名是:
    bob1234567bob1234567bob1234567bob1234567bob1234567bob1234567bob1234567bob1234567bob1234567bob123456_bob1234567bob1234567bob1234567bob1234567bob1234567bob1234567bob1234567bob1234567bob1234567bob123456_bob1234567bob1234567bob1234567bob1234567bob1234567.txt
  • 用Chrome浏览器直接访问URL下载时,文件名被截断成了177字符,变成了:
    bob1234567bob1234567bob1234567bob1234567bob1234567bob1234567bob1234567bob1234567bob1234567bob123456_bob1234567bob1234567bob1234567bob1234567bob1234567bob1234567bob1234567bob.txt
  • 用Edge浏览器直接访问URL下载时,文件名被截断成了217字符,变成了:
    bob1234567bob1234567bob1234567bob1234567bob1234567bob1234567bob1234567bob1234567bob1234567bob123456_bob1234567bob1234567bob1234567bob1234567bob1234567bob1234567bob1234567bob1234567bob1234567bob123456_bob1234567bob.txt

我的Angular应用里是通过window.open(<PATH>)来触发下载的,虽然下载后可以手动补全文件名,但我实在搞不懂为什么浏览器会自动截断——这个文件名里完全没有特殊字符啊。另外,直接用Chrome和Edge访问URL下载时,没法直观看到返回的响应头,但Postman里能明确看到完整的Content-Disposition响应头:
attachment;filename=bob1234567bob1234567bob1234567bob1234567bob1234567bob1234567bob1234567bob1234567bob1234567bob123456_bob1234567bob1234567bob1234567bob1234567bob1234567bob1234567bob1234567bob1234567bob1234567bob123456_bob1234567bob1234567bob1234567bob1234567bob1234567.txt

想请教大家:是不是我的响应头设置有问题?或者有没有什么办法能让浏览器保留完整的文件名呢?

备注:内容来源于stack exchange,提问作者DFW

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.21 07:49:33