【发布时间】:2021-03-31 13:14:37
【问题描述】:
我的 Web 应用程序创建一个 zip 文件来下载与“任务”实例相关的文件。此 zip 文件可以包含图像、.pdf 或 .txt 文件,创建的文件名格式为“{taskName}.taskBundle”。
要下载文件,Web 应用程序在响应中使用以下标头(来自 Firefox 网络监视器):
Content-Disposition: attachment; filename="task1.taskBundle"
Content-Type: application/zip;charset=UTF-8
问题:
使用 Firefox 84.0(Ubuntu 和 Windows 版本),浏览器将“.taskBundle”扩展名替换为“.zip”,因此下载的文件名为“task1.zip”而不是“task1.taskBundle”。
我尝试使用 Chrome (87.0) 和另一个 Firefox 版本(83.0、82.0、80.0、74.0)下载相同的文件,并且文件名正确:“task1.taskBundle”。
也许我应该在响应中添加另一个标头以防止 Firefox 更改文件扩展名?
我可以将 Content-Type 更改为“application/octet-stream”,但选中“从现在开始对此类文件自动执行此操作”复选框。不会显示在下载对话框中。
补充说明: 我的应用程序是使用 Grails 3.3.9 编写的,但我认为这不是 Grails 问题,因为响应标头已发送到客户端,如前所述。
【问题讨论】:
标签: http firefox browser download http-headers