PHPはZipArchiveで指定ファイルをzipにパッケージしてユーザーにダウンロードさせる

4211 ワード

Ubuntuはzlibをインストールする必要があります
sudo apt-get install ruby

sudo apt-get install zlib1g zlib1g.dev

 
Windowsはphp_をオンにする必要がありますzip.dll
「...phpext」にこのファイルがなければ、ネット上でダウンロードできます.
それから「...phpphp.ini」を修正して、「extension=php_zip.dll」を見つけて「;」を取り除き、この仕事がなければ追加します.
 
$filename = "xxxx.zip"; 

ob_end_clean(); 

$zip = new ZipArchive();

$zip->open($filename, ZipArchive::OVERWRITE);  

while (xxxx)  

{ 

    if(strlen($row->team_upload) != 0) 

    { 

        $sitelen = strlen($row->team_upload); 

        $attachfile = xxxx//    ,   PHP     

        $attachfile=iconv("UTF-8","GBK",$attachfile); //

        $zip->addFile( $attachfile , basename($attachfile)); //     zip 

    } 

} 

$zip->close();//    

header('Content-Description: File Transfer');    

Header("content-type:application/x-zip-compressed");  

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

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

header('Expires: 0');     

header('Cache-Control: must-revalidate, post-check=0, pre-check=0');     

header('Pragma: public');     

header('Content-Length: ' . filesize($filename));     

ob_clean();   //           

flush();     

@readfile($filename);   

@unlink($filename);//       zip  。