加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

如何使用标题php下载zip文件而不将其保存在服务器上

发布时间:2020-12-13 16:33:52 所属栏目:PHP教程 来源:网络整理
导读:我有这个代码 ?php$files = array('includes/s.xlsx','includes/test.html');$zipname = 'file.zip';$zip = new ZipArchive;$zip-open($zipname,ZipArchive::CREATE);foreach ($files as $file) { $zip-addFile($file); }$zip-close();header('Content-Type:
我有这个代码
<?php
$files = array('includes/s.xlsx','includes/test.html');
$zipname = 'file.zip';
$zip = new ZipArchive;
$zip->open($zipname,ZipArchive::CREATE);
foreach ($files as $file) {
  $zip->addFile($file);
 }
$zip->close();


header('Content-Type: application/zip');
header('Content-disposition: attachment; filename=filename.zip');
header('Content-Length: ' . filesize($zipname));
readfile($zipname);

但我不想将zip文件保存到服务器,我只是想将它提供给用户.

ZIP不是可流式格式(目标需要支持搜索,即ZIP文件不能简单地写入无法重新读取和修改以前写入的数据的目标),您尝试做的事情无法正常工作.所以最好的解决方案(如果你的zip文件不会很大)是在临时位置创建它,readfile()它然后删除临时文件.

请参阅以下Stack Overflow问题以获取进一步参考.它们包含一些可能适合您的解决方法:

> Zip Stream in PHP
> LAMP: How to create .Zip of large files for the user on the fly,without disk/CPU thrashing

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读