我的服务器上有一个类似“983Y4938920820894838947”的文件,我希望用户将其保存为“subject.zip”。
使用标题位置可以使下载工作,并且文件没有损坏。
每当我使用带附件,内容类型和新文件名的标题时,下载zip文件都已损坏(我认为?)。
每当我打开ZIP文件(例如test.zip)时,它都会生成一个名为test.zip.cpgz的新文件。我认为这是mac说文件已损坏的方式。
我正在使用以下代码
//下载ZIP文件
header("Content-Type: application/zip");
header('Content-Disposition: attachment; filename="' . stripslashes($new_filename) . '"');
readfile($filename);
这会使文件损坏,而下面的代码可以正常工作(但不会更改名称):
header("Location: $filename");
我尝试了其他标题但没有成功。有人有任何想法吗?谢谢!
答案 0 :(得分:0)
你在那里缺少一个标题,如果你没有指定内容长度,浏览器将不知道该文件的大小是什么:
header("Content-Length: {{replace.with.your.file.size}}");
也许这会解决你的问题。
答案 1 :(得分:0)
问题在于我有一个回音。回声使拉链腐败。因此有意义的是它只能处理标题位置而不是常规标题来更改文件名。删除回声为我修复了它。