在firefox中下载为存档而不是获取完整的文件名

时间:2015-09-02 05:36:11

标签: php http-headers mozilla ziparchive content-disposition

我正在使用ZipArchive库将内容下载为存档。 问题是归档文件没有得到给定的全名,它在第一个空格结束。例如:如果我将文件名称为" new file.zip"

header('Content-disposition: attachment; filename = new file.zip');

谷歌搜索时发现只是把引用的文件名解决了问题。所以我试过这个:

header("Content-disposition: attachment; filename = 'new file.zip'");

但没有任何变化,而下载文件名更改为" new.zip",我必须得到的是" new file.zip"

问题仅在于firefox

1 个答案:

答案 0 :(得分:1)

在下载文件之前将内容类型设置为application/zip, application/octet-stream,并将filename包含在双引号中。

// We'll be outputting a ZIP
header('Content-Type: application/zip, application/octet-stream');

// It will be called new file.zip
header('Content-Disposition: attachment; filename="new file.zip"');

如果传递变量文件名,则可以包含空格:

header("Content-Disposition", "attachment; filename=\"" . $fileName ."\"");

请注意,filenamedouble quotes包围,每RFC 2231。这允许在文件名中使用扩展字符(即国际字符)。