时间:2021-07-01 10:21:17 帮助过:37人阅读
- 将文件打包成zip格式
- 下载文件的功能
要点解析:
- 这里我采用的是php自带的ZipArchive类
a) 我们只需要new一个ZipArchive对象,然后使用open方法创建一个zip文件,接着使用addFile方法,将要打包的文件写入刚刚创建的zip文件中,最好还得记得关闭该对象。
b) 注意点:使用open方法的时候,第二个参数$flags是可选的,$flags用来指定对打开的zip文件的处理方式,共有四种情况
i. ZIPARCHIVE::OVERWRITE 总是创建一个新的文件,如果指定的zip文件存在,则会覆盖掉
ii. ZIPARCHIVE::CREATE 如果指定的zip文件不存在,则新建一个
iii. ZIPARCHIVE::EXCL 如果指定的zip文件存在,则会报错
iv. ZIPARCHIVE::CHECKCON
$nid = intval($this->_request->getParam('nid')); $filelist = $this->model->getOverenter($nid); foreach ($filelist as $f) { $row['file'] = ROOT.'/public/upload/logo/'.$f['ne_file']; $row['name'] = $f['es_name']; $ext = explode('.',$f['ne_file']); $row['ext'] = $ext[1]; $fileNameArr[]=$row; } $name = date('YmdHis').'.zip'; $filename = ROOT."/public/upload/".$name; // 最终生成的文件名(含路径) $zip = new ZipArchive (); if (!file_exists($filename)) { $zip->open($filename, ZipArchive::CREATE);//创建一个空的zip文件 for ($i = 0; $i < count($fileNameArr); $i++) { $zip->addFile($fileNameArr[$i]['file'], iconv( 'UTF-8','GB2312', $fileNameArr[$i]['name']).'.'.$fileNameArr[$i]['ext']); } $zip->close(); //打开文件 if(file_exists($filename)){ $file = fopen($filename,"r"); Header("Content-type: application/octet-stream"); Header("Accept-Ranges: bytes"); Header("Accept-Length: ".filesize($filename)); Header("Content-Disposition: attachment; filename=".$name); echo fread($file, filesize($filename)); $buffer=1024; while (!feof($file)) { $file_data=fread($file,$buffer); echo $file_data; } fclose($file); }else { echo ""; } } unlink($filename); exit();
以上就介绍了jar文件打包 php zip打包下载文件,包括了jar文件打包方面的内容,希望对PHP教程有兴趣的朋友有所帮助。