Firefox下载retrieve.php而不是每个Content-Disposition标头给出的文件名

时间:2018-04-18 11:30:49

标签: php download header

我有一个名为retrieve.php的PHP脚本,它将上传的文件从目录压缩到.zip文件中,然后将它们输出到流中,这样就可以下载所述文件了。

该脚本适用于除Firefox以外的所有浏览器。 在网上搜索了很长一段时间并遇到这个问题:PHP download script returns download-file.php instead of filename并且仍然遇到同样的问题,我很难过,也不知道出了什么问题。

这是用于下载文件的代码:

if ($zippedElements >= 1) {
//      die($zipFilename);
        $zipFilename = "download-".time().".zip";
        // Send zip to recipient
        header("Content-Dispositon: attachment; filename=\"$zipFilename\"");
        header("Content-Length: ".filesize($zipFileName));
        header("Content-Type: application/zip");
        header("Content-Transfer-Encoding: binary");
        header("Connection: Keep-Alive");
        header("Expires: 0");
        header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
        header("Pragma: public");
        header("Accept-Ranges: bytes");
        readfile($zipFileName);

    } else return;

我已尝试将标头设置为不同的值,例如content-type:application / force-download,在文件名后添加星号(*)等,但都无济于事。

Firefox中的结果如下:

enter image description here

非常感谢任何有关此事的帮助。

1 个答案:

答案 0 :(得分:1)

变量名称$ zipFilename中存在不一致 - N 有时会大写。

query