zip打包下载

/**打包下载

* @param $id 任务id

* @param $data 数据

* @param $files 图片

*/

private function zip($id, $data, $files)

{

    //数组转字符串

    $content = json_encode($data);

    //生成txt文件

    $prefix = '.txt';

    $name = time() . '_' . $id;

    file_put_contents($name . $prefix, $content);

    //压缩文件

    $zipName = 'Upload/' . $name . '.zip';

    $zip = new \ZipArchive();

    $zip->open($zipName, \ZipArchive::CREATE);

    $zip->addFile($name . $prefix);

    $files = array_unique($files);

    if ($files) {

        foreach ($files as $val) {

            $zip->addFile('.' . $val, basename($val));

}

}

    $zip->close();

    //删除txt文件

    unlink($name . $prefix);

    //下载压缩包

    set_time_limit(0);

    header('Content-Type: application/octet-stream');

    //下载的文件名

    header('Content-Disposition: attachment; filename=' . basename($zipName));

    header('Content-Transfer-Encoding: binary');

    ob_end_clean();

    echo readfile($zipName);

    //删除压缩文件

    unlink($zipName);

}

你可能感兴趣的:(zip打包下载)