当前位置:Gxlcms > PHP教程 > jar文件打包phpzip打包下载文件

jar文件打包phpzip打包下载文件

时间:2021-07-01 10:21:17 帮助过:37人阅读

  1. 将文件打包成zip格式
  2. 下载文件的功能

要点解析:

  1. 这里我采用的是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教程有兴趣的朋友有所帮助。

人气教程排行