php文件夹打包类(已测试)
2017-04-07
后端
使用实例:
<?php
<form method="post">
压缩到服务器:
<br>------------------<br>
压缩目录: <input name="zipdir" type="text" id="zipdir" />(例如./folder)<br>
另存为路径和文件名:<input name="savename" type="text" id="savename" />(例如./folder/file.zip)(需要填写扩展名)<br>
<input name="zip" type="submit" id="zip" value="压缩" /><br>
<br><br><br>
压缩并下载
<br>------------------<br>
文件所在目录:<input name="zipdowndir" type="text" id="zipdowndir" />(例如./folder)<br>
<input name="zipdown" type="submit" id="zipdown" value="压缩并下载" />
<br><br><br>
在线解压zip
<br>------------------<br>
文件: <input name="unzipfile" type="text" id="unzipfile" />(例如./folder/file.zip)<br>
解压到:<input name="unziptarget" type="text" id="unziptarget" />(例如./folder)<br>
<input name="unzip" type="submit" id="unzip" value="解压" />
<br><br><br>
读取压缩文件内部文件信息和注释
<br>------------------<br>
文件:<input name="readfile" type="text" id="readfile" />(例如./folder/file.zip)<br>
<input name="readfileinfo" type="submit" id="readfileinfo" value="读取内部文件信息" />
<input name="readcomment" type="submit" id="readcomment" value="读取注释" />
</form>
<?
echo "<p><p>rn";
echo "<br>--------------------------<br>rn";
echo "显示信息:rn";
echo "<br>--------------------------<br>rn";
$archive = new PHPZip();
if(!empty($zip))
{
$archive->Zip($zipdir, $savename);
}
elseif(!empty($zipdown))
{
$archive->ZipAndDownload($zipdowndir);
}
elseif(!empty($unzip))
{
$zipfile = $unzipfile;
$savepath = $unziptarget;
$array = $archive->GetZipInnerFilesInfo($zipfile);
$filecount = 0;
$dircount = 0;
$failfiles = array();
set_time_limit(0); // 修改为不限制超时时间(默认为30秒)
for($i=0; $i<count($array); $i++) {
if($array[$i][folder] == 0){
if($archive->unZip($zipfile, $savepath, $i) > 0){
$filecount++;
}else{
$failfiles[] = $array[$i][filename];
}
}else{
$dircount++;
}
}
set_time_limit(30);
printf("文件夹:%d 解压文件:%d 失败:%d<br>rn", $dircount, $filecount, count($failfiles));
if(count($failfiles) > 0){
foreach($failfiles as $file){
printf("·%s<br>rn", $file);
}
}
}
elseif(!empty($readfileinfo))
{
$array = $archive->GetZipInnerFilesInfo($readfile);
for($i=0; $i<count($array); $i++) {
printf("<b>·%s</b><br>rn", $array[$i][filename]);
foreach($array[$i] as $key => $value)
printf("%s => %s<br>rn", $key, $value);
print "rn<p>------------------------------------<p>rnrn";
}
}
elseif(!empty($readcomment))
{
$comment = $archive->GetZipComment($readfile);
printf("%s<br>rn", $comment);
}
?>
?>