PHP下载脚本

时间:2011-10-03 19:35:29

标签: php download readfile

我正在尝试编写一个php脚本,它将在启动下载到客户端之前检查传入的参数。我刚开始试图发起下载:

    <?php
    $file =  '/tticon.jpg';

    header('Content-Description: File Transfer');
    header('Content-Type: application/octet-stream');
    header("Content-Disposition: attachment; filename=\"".basename($file)."\"");
    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($file);
    exit;
?>

当我导航到此脚本时,它会显示一个空白页面,但没有任何反应。如何开始下载?

5 个答案:

答案 0 :(得分:2)

尝试使用application/force-download作为内容类型。如果您想在brwoser中显示图像,可以使用image/jpg

答案 1 :(得分:0)

header("Content-type: application/force-download"); 

答案 2 :(得分:0)

添加以下行:

header("Content-Type: application/force-download");

答案 3 :(得分:0)

由于文件的扩展名为&#34; .jpg&#34;我认为它的mime是image/jpeg

替换此行:

header('Content-Type: application/octet-stream');

用这个:

header('Content-Type: image/jpeg');

如果你真的想强迫浏览器下载文件(我觉得这很不可能):

用以下代码替换:

header("Content-Type: application/force-download");

答案 4 :(得分:0)

您的$file看起来很可疑。你真的在服务器的根目录中有一个tticon.jpg吗?请记住,PHP的文件功能在服务器的FILESYSTEM上运行,而不是Apache提供的WEB目录。 PHP不会神奇地将您网站的文档根目录预先挂起到该路径。它实际上将查找服务器文件系统的根目录,而不是在您站点的文档根目录中。