php多文件压缩后上传,php 多文件压缩打包

php自带zip类库ziparchive

'./public/img1.jpg', 'down_path' => 'file1/newimg1.jpg');

$fileArr[1] = array('file_path' => './public/img2.jpg', 'down_path' => 'file1/newimg2.jpg');

$fileArr[2] = array('file_path' => './public/img3.jpg', 'down_path' => 'file2/newimg.jpg');

//要使用该类,需要先启用 extension=php_zip.dll

$zip = new \ZipArchive ();

$res = $zip->open ( $zipname, \ZipArchive::CREATE );

if ($res === TRUE) {

foreach ( $fileArr as $file ) {

//这里将服务器上的文件添加到下载内容中,并重新赋值下载zip文件内该文件的路径

$zip->addFile ( $file ['file_path'], $file ['down_path'] );

}

}

$zip->close ();

header ( "Content-Type: application/zip" );

header ( "Content-Transfer-Encoding: Binary" );

header ( "Content-Length: " . filesize ( $zipname ) );

header ( "Content-Disposition: attachment; filename=\"" . basename ( $zipname ) . "\"" );

readfile ( $zipname );

//如不删除,则在服务器上会有 $zipname 这个zip文件

@unlink ( $zipname );

/*

下载后的 photo.zip 压缩包内包含两个文件夹 file1,file2。file1内包含文件为 newimg1.jpg,newimg2.jpg ,file2内包含文件为 newimg.jpg

photo.zip

-- file1

-- newimg1.jpg

-- newimg2.jpg

-- file2

-- newimg.jpg

*/

open('pack.zip',ZIPARCHIVE::CREATE) === TRUE)

{

foreach($fileArray as $file)

{

$zip->addFile($file, 'newname.txt');

}

$zip->close();

}

?>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值