/**
* @comments: 打包附件zip方法
* @author: zhuanghuidong
* @time:
* @param $filename
* @param $attachments
*/
private function _file_to_zip($filename,$attachments)
{
if (!file_exists($filename)) {
//重新生成文件
$zip = new \ZipArchive();//使用本类,linux需开启zlib,windows需取消php_zip.dll前的注释
if ($zip->open($filename, \ZipArchive::CREATE) !== TRUE) {
exit('无法打开文件,或者文件创建失败');
}
foreach ($attachments as $val) {
if (file_exists($val)) {
$zip->addFile($val);//第二个参数是放在压缩包中的文件名称,如果文件可能会有重复,就需要注意一下
}
}
$zip->close();//关闭
}
foreach ($attachments as $files_path){
@unlink ($files_path);//删除原始文件
}
}
/**
* @comments: 执行tar命令的方式
* @author: zhuanghuidong
* @time:
* @param $filename
* @param $attachments
*/
private function _file_to_tar($filename,$attachments)
{
$path_arr = explode('/',$filename);
$tar_file_name = $path_arr[count($path_arr)-1];
$str=str_replace($tar_file_name,"",$filename);
$ss_txt = '';
foreach ($attachments as $files_path){
$path_arr = explode('/',$files_path);
$files_name = $path_arr[count($path_arr)-1];
$ss_txt = $ss_txt.$files_name." ";
}
$command = 'tar -C '.$str.' -cvf '.$filename." ".$ss_txt;
system($command);//命令行打包
foreach ($attachments as $files_path){
@unlink ($files_path);//删除原始文件
}
}