【问题标题】:PHP force download works on localhost but not on hosting serverPHP 强制下载适用于本地主机,但不适用于托管服务器
【发布时间】:2014-10-29 21:30:27
【问题描述】:

我正在尝试使用以下代码强制下载文件

header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='backup.zip');
header('Content-Length: '.filesize('backup.zip') );
readfile('backup.zip');

这在 localhost (xampp) 上工作得很好,但是当我上传到我的托管服务器时,它只是在屏幕上打印了一些奇怪的字符,如下所示。

PK|^EWÌV†Ÿcredit_return.csvUT ”:QT”:QTuxeKƒ0÷>‹+Ù&ßÓ ÔdÁ¢P¸“ÐB(Ê"Ñdôì÷L1ŒkŸâº¥©¾cZæi)Ïm‰©ÜÃkÞ¦Ÿ~å0¬r>¡ «Ù°(...Ð說[Ó¯Pt«:B]ñE3ºKª¯ª÷G...»êJKs,B³ÓsšXv/qÊ™T%ØIƒ=°½mѰCß–cÊÀ~ßM”r—ÒJ_hɼÑPK|^EÑàÀUävtxn_type.csvUT ”:QT”:QTux]‘KOB1…÷üЬjBñYÂÂ’¸$Mï½3dnAø÷V!qŽ»v¾³8râu9ïiZW®oý~6Y¾Ü¡'­tàÝpvª°§æ¦Y“†…¤Ê‘¾bD§®Ûл* MŸú/Ï?ðñöb¾¶æ¼o0P‘ºÁ_K³‡‹äÒ« ­;kayRÂbUÔ»Ëu–F5‚^‚Bó꽜ÿB4-pÄÀ¢‘¡Cçëññ/PK|^E~ìa3;user.csvUT ”:QT”:QTux+-N-ŠÏLÑÉKÌMÕ)rÀŒ, Äââòü¢.CÇ”òÄÌD(eibdlhbbdbÄPK|^EeHÐ'åûdefinitions.sqlUT ”:QT":QTux¥ÕOo‚0ð»É

我在 google 上进行了很多搜索,stackoverflow 本身对此有很多问题,但大多数都没有得到答复或没有得到令人满意的答复。

提示:这可能与输出缓冲区有关。

【问题讨论】:

    标签: php http-headers xampp localhost web-hosting


    【解决方案1】:

    奇怪的字符以“PK”开头,所以我认为您正在查看 backup.zip 的内容(请记住 PKZIP)。您的浏览器似乎不知道如何处理它。

    有一个php提供的例子: http://php.net/manual/en/function.readfile.php 它有更多的标题内容。可能会成功。

    将其声明为附件的标头在您的示例中没有引号。 您可以在文件名周围使用双引号并在文件名后使用额外的单引号以使引用“正确”。

    header('Content-Disposition: attachment; filename="backup.zip"');
    

    由于引号不正确,可能导致整个标题无效。

    【讨论】:

      【解决方案2】:

      试试下面的。

      header('Content-Type: application/octet-stream');
      header("Content-Disposition: attachment; filename='backup.zip'");
      header('Content-Transfer-Encoding: binary');
      header('Expires: 0');
      header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
      header('Pragma: public');
      header('Content-Length: ' . filesize($file));
      ob_clean();
      flush();
      readfile('backup.zip');
      

      【讨论】:

        猜你喜欢
        • 2014-08-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-11-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多