PHP ZipArchive 打包文件进行下载
16lz
2022-06-17
header(‘Content-Type:text/html; charset= utf-8’);
$zipname='压缩文件名称';
$zip = new ZipArchive;
//压缩文件名 中文转gbk
$filename = iconv('utf-8', 'gbk//ignore', 'Down/'.$zipname).'.zip';
//1.先判断文件是否已存在
//2.文件已存在的情况下,则需要删除文件重新生成
//文件是否删除根据需求而定
if (file_exists($filename)) {
unlink($filename);
}
//检验压缩文件是否创建
if ($zip->open($filename, \ZipArchive::OVERWRITE | \ZipArchive::CREATE)!==TRUE) {
exit('无法打开文件,或者文件创建失败');
}
//文件路径要以绝对路径 例:http://baidu.com/1.txt 否则下载的文件大小为0,打开显示文件已损坏
$file_path=file_get_contents('文件路径');
$zip->addFile($file_path,'文件目录/文件名称'); //添加文件到压缩里
//存在特殊符号使用
$zip->addFromString( iconv('utf-8', 'gbk//ignore', '文件名称'),$file_path);
//关闭
$zip->close();
//即使创建,仍有可能失败
if(!file_exists($filename)){
exit("无法找到文件");
}
//可以直接重定向下载
//header('Location:'.$filename);
//或者输出下载
header("Cache-Control: public");
header("Content-Description: File Transfer");
header('Content-disposition: attachment; filename='.basename($filename)); //文件名
header("Content-Type: application/force-download");
header("Content-Transfer-Encoding: binary");
header('Content-Length: '. filesize($filename)); //告诉浏览器,文件大小
readfile($filename);
更多相关文章
- android中socket编程
- Android创建XMl文件
- android input系统如何导入kl文件
- Android(安卓)SD卡,文件,文件夹工具
- 解决录音文件丢失问题
- Android: Intent.ACTION_SEND分享文件
- Android的drawable文件夹的说明
- Android(安卓)zip文件压缩解压缩
- android - 常用知识点以及代码片段(不断更新)