首頁  >  文章  >  後端開發  >  PHP實作線上打包下載功能的方法

PHP實作線上打包下載功能的方法

墨辰丷
墨辰丷原創
2018-06-01 09:18:441866瀏覽

這篇文章主要介紹了PHP線上打包下載功能實現方法,結合實例形式分析了php打包下載的實現流程與相關注意事項,需要的朋友可以參考下

昨天晚上,為了弄這個打包下載的事,弄的事焦頭爛額。有幾個問題,第一個是開始PHP_ZIP.dll的問題。話說只要把PHP.INI裡面的extend_dir裡面的前的」;」號碼去掉。再重啟IIS或apache就可以了。

問題是老是找不到系統設定的真正的PHP.INI。

PHP設定圖

第二個是告訴你設定文件的路徑,按著找就可以了。我當時腦袋秀逗了,浪費了很多時間。

這個開啟PHP_ZIP擴充函式庫以後,就可以開始打包下載了。

$filename= date("YmdHis");
$zip = new ZipArchive();//使用本类,linux需开启zlib,windows需取消php_zip.dll前的注释
$zip->open($filename.".zip", ZipArchive::OVERWRITE); //$data 就是从数据库里面读出的数字
foreach( $data as $val){
   $attachfile = "E:\bysj\bysj".$val['fileaddr'].$val['filename']; //写硬路径,但建议用PHP环境变量
   $attachfile=iconv("UTF-8","GBK",$attachfile); //转码,是打包中文文档的关键
   $zip->addFile( $attachfile , basename($attachfile)); //压栈
}
$zip->close();//关闭
header("Content-type:text/html;charset=utf-8");//设置页面编号
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.".zip");

上面的程式碼基本上可以實作文件打包下載了,也解決了中文文件無法打包下載的問題。

總結:以上就是這篇文章的全部內容,希望能對大家的學習有所幫助。

相關推薦:

PHPStrom 新FTP專案以及線上操作圖文詳解

php微信支付之公眾號支付功能

PHP實作透過CURL上傳檔案功能

########################################################################### ######

以上是PHP實作線上打包下載功能的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn