PHP8.1.21版本已发布
vue8.1.21版本已发布
jquery8.1.21版本已发布

博客列表 > PHP ZipArchive 打包文件进行下载

PHP ZipArchive 打包文件进行下载

鱼的熊掌
鱼的熊掌 原创
2022年06月16日 14:46:41 920浏览

header(‘Content-Type:text/html; charset= utf-8’);

  1. $zipname='压缩文件名称';
  2. $zip = new ZipArchive;
  3. //压缩文件名 中文转gbk
  4. $filename = iconv('utf-8', 'gbk//ignore', 'Down/'.$zipname).'.zip';
  5. //1.先判断文件是否已存在
  6. //2.文件已存在的情况下,则需要删除文件重新生成
  7. //文件是否删除根据需求而定
  8. if (file_exists($filename)) {
  9. unlink($filename);
  10. }
  11. //检验压缩文件是否创建
  12. if ($zip->open($filename, \ZipArchive::OVERWRITE | \ZipArchive::CREATE)!==TRUE) {
  13. exit('无法打开文件,或者文件创建失败');
  14. }
  15. //文件路径要以绝对路径 例:http://baidu.com/1.txt 否则下载的文件大小为0,打开显示文件已损坏
  16. $file_path=file_get_contents('文件路径');
  17. $zip->addFile($file_path,'文件目录/文件名称'); //添加文件到压缩里
  18. //存在特殊符号使用
  19. $zip->addFromString( iconv('utf-8', 'gbk//ignore', '文件名称'),$file_path);
  20. //关闭
  21. $zip->close();
  22. //即使创建,仍有可能失败
  23. if(!file_exists($filename)){
  24. exit("无法找到文件");
  25. }
  26. //可以直接重定向下载
  27. //header('Location:'.$filename);
  28. //或者输出下载
  29. header("Cache-Control: public");
  30. header("Content-Description: File Transfer");
  31. header('Content-disposition: attachment; filename='.basename($filename)); //文件名
  32. header("Content-Type: application/force-download");
  33. header("Content-Transfer-Encoding: binary");
  34. header('Content-Length: '. filesize($filename)); //告诉浏览器,文件大小
  35. readfile($filename);
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议