php强制下载在屏幕上显示垃圾

She*_*roz 2 php zip force-download

我正在尝试从Ubuntu的/ tmp文件夹下载一个zip文件。但是,当我运行Php代码时,它在浏览器上显示垃圾文本,而不是显示下载框。我尝试了一个简单的文本文件,没有显示下载对话框,而是在浏览器中打印了内容。为什么此强制下载无法正常工作。下面是代码。

if (file_exists($dir.$filename)) {
            header("Content-type: application/force-download");
            header("Content-Transfer-Encoding: Binary");
            header("Content-length: ".filesize($dir.$filename));
            header('Content-disposition: attachment; filename='.basename($dir.$filename));
            readfile($dir.$filename);
            exit(0);
        }

    `    
Run Code Online (Sandbox Code Playgroud)

mau*_*ris 5

好吧,给定任何浏览器的MIME类型为“应用程序/强制下载”,浏览器将不知道如何处理。

由于它是一个zip文件,因此MIME类型应为“ application / octet-stream”或“ application / zip”。

if (file_exists($dir . $filename)) {
        header("Content-type: application/zip");
        header("Content-Transfer-Encoding: Binary");
        header("Content-length: " . filesize($dir . $filename));
        header('Content-disposition: attachment; filename=' . basename($dir . $filename));
        readfile($dir . $filename);
        exit(0);
    }
Run Code Online (Sandbox Code Playgroud)

  • 在流式传输文件之前,您是否在浏览器中回显了任何内容(例如,空格)? (5认同)