批量下载文件

hyx 2018-07-24 09:55:11 225次 0

批量下载文件只能下载成压缩文件一起放进压缩包里,不能一个个单独下载


header("Content-Type:charset:utf-8");
$filename = "images.zip"; //最终生成的文件名(含路径)
$datalist=json_decode( $_GET["aImg"]);
$attachmentDir="../../uppic/";
//print_r($datalist);
//echo $datalist[0];

if(!file_exists($filename)){
    //重新生成文件
    $zip = new ZipArchive();//使用本类,linux需开启zlib,windows需取消php_zip.dll前的注释
    if ($zip->open($filename, ZIPARCHIVE::CREATE)!==TRUE) {
        exit('无法打开文件,或者文件创建失败');
    }
    foreach( $datalist as $val){
        $attachfile = $attachmentDir . $val; //获取原始文件路径
        if(file_exists($attachfile)){
            $zip->addFile( $attachfile , basename($attachfile));//第二个参数是放在压缩包中的文件名称,如果文件可能会有重复,就需要注意一下
        }
    }
    $zip->close();//关闭
}
if(!file_exists($filename)){
    exit("无法找到文件"); //即使创建,仍有可能失败。。。。
}
header("Cache-Control: public");
header("Content-Description: File Transfer");
header('Content-disposition: attachment; filename='.basename($filename)); //文件名
header("Content-Type: application/zip"); //zip格式的
header("Content-Transfer-Encoding: binary"); //告诉浏览器,这是二进制文件
header('Content-Length: '. filesize($filename)); //告诉浏览器,文件大小
@readfile($filename);
unlink($filename); //删除临时文件

发表评论

注:*为必填

回复 的评论
*
选择
*
*