zoukankan      html  css  js  c++  java
  • PHP 多文件打包下载 zip

    <?php
    $zipname = './photo.zip';
    
    //服务器根目录下有文件夹public,其中包含三个文件img1.jpg, img2.jpg, img3.jpg,将这三个文件打包下载,并重设下载的目录结构及文件名 file1/newimg1.jpg, file1/newimg2.jpg, file2/newimg.jpg
    $fileArr[0] = array('file_path' => './public/img1.jpg', 'down_path' => 'file1/newimg1.jpg');
    $fileArr[1] = array('file_path' => './public/img2.jpg', 'down_path' => 'file1/newimg2.jpg');
    $fileArr[2] = array('file_path' => './public/img3.jpg', 'down_path' => 'file2/newimg.jpg');
    
    //要使用该类,需要先启用 extension=php_zip.dll
    $zip = new ipArchive ();
    $res = $zip->open ( $zipname, ipArchive::CREATE );
    if ($res === TRUE) {
        foreach ( $fileArr as $file ) {
    
            //这里将服务器上的文件添加到下载内容中,并重新赋值下载zip文件内该文件的路径
            $zip->addFile ( $file ['file_path'], $file ['down_path'] );
        }
    }
    
    $zip->close ();
    
    header ( "Content-Type: application/zip" );
    header ( "Content-Transfer-Encoding: Binary" );
    header ( "Content-Length: " . filesize ( $zipname ) );
    header ( "Content-Disposition: attachment; filename="" . basename ( $zipname ) . """ );
    
    readfile ( $zipname );
    
    //如不删除,则在服务器上会有 $zipname 这个zip文件
    @unlink ( $zipname );
    
    /*
    下载后的 photo.zip 压缩包内包含两个文件夹 file1,file2。file1内包含文件为 newimg1.jpg,newimg2.jpg ,file2内包含文件为 newimg.jpg
    photo.zip
    -- file1
            -- newimg1.jpg
            -- newimg2.jpg
    -- file2
            -- newimg.jpg
    
    */
  • 相关阅读:
    字体
    abstract关键词
    final关键词
    多态
    接口
    java面向对象
    java运算符
    JDK安装
    循环
    TextView控件
  • 原文地址:https://www.cnblogs.com/dreamhome/p/9994173.html
Copyright © 2011-2022 走看看