我有一个网络应用程序,它对.ssa文件执行字符编码转换(SubStation Alpha - 基本上是字幕文件)。这些文件的MIME类型是text / plain。当应用程序执行转换时,它会创建一个下载新文件的链接。在Safari中,这非常有效。但是,在Chrome中单击下载链接时,无论实际文件名是什么,它都会尝试将文件保存为download.txt
。在Firefox(beta)中,它尝试将其保存为类似kP3844h1.txt.part
的内容。如何告诉这些浏览器只使用链接的文件名?在所有情况下,文件的内容都是正确的,它只是浏览器的“另存为...”对话框中的名称,它被搞砸了。
目前我的.htaccess看起来像:
AddType text/plain ssa
<Files *.ssa>
#ForceType application/octet-stream
Header set Content-Disposition attachment
</Files>
我已尝试取消注释两个<Files>
行,并且其中任何一行都有自己的注释,但这些选项都没有为我提供我正在寻找的解决方案。
此外,该应用程序是用PHP编写的,所以如果我可以在PHP代码中执行某些操作而不是弄乱.htaccess,我会接受建议。
答案 0 :(得分:1)
使用Content-Disposition attachment; filename="$actual_filename.txt"
作为标题。将$actual_filename.txt
替换为文件的实际名称。我不知道在Apache配置中是否可以这样做,但如果你通过PHP管道文件,你可以用header函数设置标题。