文件下载正在运行 - 除了更大的文件下载 - 大文件下载太快并且在打开时损坏 - 我收到错误消息(对于zip文件):无法打开文件:它似乎不是有效的存档。该文件是def上传确定并位于文件夹
这是我用来强制下载标题的php代码
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;
答案 0 :(得分:0)
首先尝试直接访问该文件(直接URL到zip文件)。
如果它也出现错误或损坏,请使用类似的东西 流编写器一次写入大量数据。
(假设服务器端文件未损坏)
或者使用这样的东西
答案 1 :(得分:0)
找到解决方案
这是一个最大内存分配问题 - 它的php默认设置为236M
我提高了这个及其工作
感谢所有帮助
此致
杰夫
答案 2 :(得分:0)
即使通过提高内存分配,下载仍然非常不可靠。我管理通过使用下面的方法使其稳定。欣赏每个人的意见。
header("Content-Disposition: attachment; filename=" . urlencode($file));
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");
header("Content-Description: File Transfer");
header("Content-Length: " . filesize($file));
flush(); // this doesn't really matter.
$fp = fopen($file, "r");
while (!feof($fp))
{
echo fread($fp, 65536);
flush(); // this is essential for large downloads
}
fclose($fp);