【问题标题】:File downloads black file文件下载黑色文件
【发布时间】:2013-09-08 06:42:45
【问题描述】:

所以 $fmain 等于文件路径,和随机生成的文件名,然后 fwrite 100 行 html 文本(使用'')。这很好,但它随后保存到服务器,这很好,但随后它下载到客户端(请求文件下载的客户端)并且它是空白的。有没有人有任何想法?顺便说一句,这一切都在同一页上。该文件在服务器本身上是完整的,但在下载到客户端时并不完整。

fwrite($file, $line98 );
fwrite($file, $numberNewline);
fwrite($file, $line99 );
fwrite($file, $numberNewline);
fwrite($file, $line100 );
fwrite($file, $numberNewline);



fclose($file);

if (file_exists($fmain)) {
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($fmain));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($fmain));
ob_clean();
flush();
exit;
}

【问题讨论】:

    标签: php file header download


    【解决方案1】:

    您的脚本只是发送标头,您也应该在ob_clean() 之前发送readfile。例如它可能是:

    if (file_exists($fmain)) {
    header('Content-Description: File Transfer');
    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename='.basename($fmain));
    header('Content-Transfer-Encoding: binary');
    header('Expires: 0');
    header('Cache-Control: must-revalidate');
    header('Pragma: public');
    header('Content-Length: ' . filesize($fmain));
    readfile($fmain);
    ob_clean();
    flush();
    exit;
    }
    

    【讨论】:

      猜你喜欢
      • 2012-01-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多