最近整理文档,搜刮出一个php多文件打包下载的实例代码,稍微整理精简一下做下分享。
需要同时下载多个文件时,大部分浏览器都不支持多文件同时下载,可以采用JavaScript脚本动态生成多个链接,但是需要用户多次点击下载对话框,用户体验不好,并且有些浏览器还不兼容。此时多文件打包下载帮你解决这个问题。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
$filename = "test.zip" ;
$datalist = array ( './pubfile/1.jpg' , './pubfile/2.jpg' );
if (! file_exists ( $filename )){
$zip = new ZipArchive();
if ( $zip ->open( $filename , ZipArchive::CREATE)==TRUE) {
foreach ( $datalist as $val ){
if ( file_exists ( $val )){
$zip ->addFile( $val , basename ( $val ));
}
}
$zip ->close();
}
}
if (! file_exists ( $filename )){
exit ( "无法找到文件" );
}
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 );
|
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:http://www.jianshu.com/p/9d00cb2959ff