我已成功使用此代码下载pdf文件。我使用相同的代码下载包含exe的zip文件(只是更改文件名并将mime类型更改为application / zip),当我尝试打开时出现此错误下载文件: " Windows无法打开该文件夹。 压缩(压缩)文件夹' [文件名]'无效"
我确认原始的未压缩文件已运行,而且我也可以成功解压缩笔记本电脑上的文件夹并运行exe。
我还将我的网站上的zip文件通过Filezilla下载到临时文件夹,解压缩并运行,以确保上传没有问题。
它是一个70 MB的文件,所以我尝试下载一个65 kb的压缩exe文件---同样的错误。
我添加了标题(" Content-Length:"。$ file_size),即使pdfs在没有它的情况下正常下载---同样的错误。
我尝试了application / octet-stream ---同样的错误。
有什么想法吗?任何建议表示赞赏。
$file_size = filesize($file_path);
$file = @fopen($file_path,"r");
if ($file)
{
header("Pragma: public");
header("Cache-Control: public, must-revalidate, post-check=0, pre-check=0");
header("Content-Disposition: attachment; filename=\"$file_name\"");
//header("Content-Length: " . $file_size);
header("Content-Type: " . $ctype);
set_time_limit(0);
fseek($file, 0);
while(!feof($file))
{
print(@fread($file, 1024*8));
ob_flush();
flush();
if (connection_status()!=0)
{
@fclose($file);
exit;
}
}
@fclose($file);
}
答案 0 :(得分:0)
问题可能是您的php_execution_time
很低,并且在下载zip之前就会中止。
检查zip的大小是否与服务器上的大小相同。
或激活Apache中的mod_xsend文件并设置标题:
header("X-Sendfile: $filename");