ZipArchive下载所选图像失败,大量下载

时间:2014-10-06 11:46:41

标签: php html ziparchive

我创建了一个显示缩略图图像列表的网页。用户可以使用缩略图旁边的复选框选择图像,然后下载所选图像。

表单操作下载php文件,该文件使用ZipArchive函数创建压缩文件,然后在下载后删除文件。

这是HTML表单,其中一个图像是其中一个图像的标记:

<form name="download" method="post" action="includes/download.php">
  <input type="hidden" name="zipname" value="images.zip">
  <input class="button" type="submit" value="Download Selected">
  <ul>
    <li>
      <img src="images/image_01_thumb.jpg"/>
      <input type="checkbox" name="files[]" value="images/image_01.jpg">
    </li>
  </ul>
</form>

和php下载文件包含:     

$files = $_POST['files'];
$zipname = $_POST['zipname'];
$zip = new ZipArchive;
$zip->open($zipname, ZipArchive::CREATE);
foreach ($files as $file) {
  $zip->addFile($file);
}
$zip->close();

header('Content-Type: application/zip');
header('Content-disposition: attachment; filename='.$zipname);
header('Content-Length: ' . filesize($zipname));
readfile($zipname);
unlink ($zipname);

?>

到目前为止,这个工作正常,直到文件超过150MB然后失败。当它试图下载大文件时它会超时并且我得到一个'找不到文件错误',在错误之后我可以看到zip文件已经创建并包含所有选定的文件(所以我知道它部分工作)但是它超时也无法删除压缩文件。

我已经检查了ZipArchive函数的最大文件大小,除非我弄错了它应该能够处理高达4gb的文件。有谁知道为什么会这样?

提前感谢您的帮助。

0 个答案:

没有答案