下载压缩指的是下载有这个数组的文件吧。三点都用shell脚本比较方便

解决方案 »

  1.   


    哎,问题是要用php做啊求助
      

  2.   

    http://php.net/manual/zh/class.ziparchive.php   ,也在看
      

  3.   

    资料:http://www.info110.com/phpbiancheng/in24487-1.htm小弟思路是这样的:
    创建一个空的zip文件,在取到文件后可以读取文件内容转而用title来生产文件加到zip文件中,最后下载就可以,不知道对错
      

  4.   

    网上找的一段代码
    他这个可以现在并打包jpg的文件,但是我修改了,就无法下载了,请高人指点
    <?php
    $pic_path = 'http://www.baidu.com';
    $qrList = array(
        array(
            'data'=>array(
                'id'=>1,
                'source'=>'qrCodeSale1'
            ),
        ),
        array(
            'data'=>array(
                'id'=>2,
                'source'=>'qrCodeSale2'
            ),
        ),
        array(
            'data'=>array(
                'id'=>3,
                'source'=>'qrCodeSale3'
            ),
        ),
    );
    $filename = '/tmp/batchQrCodeDownload.zip';
    $zip = new ZipArchive();
    $zip->open($filename, ZipArchive::OVERWRITE);
    $zip->addEmptyDir('images'); //增加一个目录的原因是,如果zip包没东西会一直下载,永不停止
    foreach ($qrList as $value) {
        $fileData = file_get_contents($pic_path . '/' . $value['data']['source'] . '/' . $value['data']['source'] . '_' . $value['data']['id'] . '.jpg');
        if ($fileData) {
            $zip->addFromString('images/' . $value['data']['source'] . '.jpg', $fileData);
        }
    }
    $zip->close();
    //打开文件
    $file = fopen($filename, "r");
    //返回的文件类型
    Header("Content-type: application/octet-stream");
    //按照字节大小返回
    Header("Accept-Ranges: bytes");
    //返回文件的大小
    Header("Accept-Length: " . filesize($filename));
    //这里对客户端的弹出对话框,对应的文件名
    Header("Content-Disposition: attachment; filename=batchQrCodeDownload.zip");
    //一次只传输1024个字节的数据给客户端
    //向客户端回送数据
    $buffer = 1024; //
    //判断文件是否读完
    while (!feof($file)) {
        //将文件读入内存
        $file_data = fread($file, $buffer);
        //每次向客户端回送1024个字节的数据
        echo $file_data;
    }
     
    fclose($file);
     
    unlink($filename); //删除文件
    ?>