使用PHP在Windows Server上压缩大目录

时间:2013-11-01 19:40:34

标签: php zip windows-server

我想在Windows Server上压缩50K文件的大文件夹。我目前正在使用此代码:

include_once("CreateZipFile.inc.php");
$createZipFile=new CreateZipFile;

$directoryToZip="repository";
$outputDir=".";
$zipName="CreateZipFileWithPHP.zip";

define("ZIP_DIR",1); //


if(ZIP_DIR)
{
//Code toZip a directory and all its files/subdirectories
$createZipFile->zipDirectory($directoryToZip,$outputDir);
}else
{
//?
}

$fd=fopen($zipName, "wb");
$out=fwrite($fd,$createZipFile->getZippedfile());
fclose($fd);
$createZipFile->forceDownload($zipName);
@unlink($zipName);

一切正常,直到大约2K图像文件。但这不是我想要的。我愿意至少加工像50K图像。与此同时,我的脚本出现此错误:

  

致命错误:第92行的C:\ xampp \ htdocs \ filemanager \ CreateZipFile.inc.php超出最大执行时间360秒

$newOffset = strlen(implode("", $this->compressedData));

我正在寻找任何解决方案来处理如此庞大的文件。我目前在Windows Server 2008 Standard上使用XAMPP。有没有可能制作拉链的一小部分,使用系统命令和可能的外部工具打包它们然后发送到标题下载?

http://pastebin.com/iHfT6x69 for CreateZipFile.inc.php

2 个答案:

答案 0 :(得分:0)

试试这个......以增加执行时间

ini_set('max_execution_time', 500);

500是数字os秒将其更改为你lilke的任何内容

答案 1 :(得分:0)

您需要较小的文件或快速提供的文件吗? 如果没有压缩而没有内存泄漏的快速服务你可以尝试使用像gzip这样的zip软件的系统命令并转换压缩。

文件可能会变得很大,但会作为一个文件快速提供。