文件下载黑色文件

时间:2013-09-08 06:42:45

标签: php file header download

因此$ fmain等于文件路径,以及随机生成的文件名,然后它会写入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;
}

1 个答案:

答案 0 :(得分:1)

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

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;
}