当前位置: 首页 > 面试题库 >

使用php下载多个文件作为zip文件

凌伟泽
2023-03-14
问题内容

如何使用php将多个文件下载为zip文件?


问题答案:

您可以使用ZipArchive该类创建一个ZIP文件并将其流式传输到客户端。就像是:

$files = array('readme.txt', 'test.html', 'image.gif');
$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='.$zipname);
header('Content-Length: ' . filesize($zipname));
readfile($zipname);

第二行强制浏览器向用户显示一个下载框,并提示名称filename.zip。第三行是可选的,但某些(主要是较旧的)浏览器在某些情况下会出现问题,而未指定内容大小。



 类似资料:
  • 我有我的网站在和我想下载一些文件从另一个域但没有得到下载和显示302移动临时错误。我使用cURL代码。

  • 我想通过截击下载一个zip文件。现在,我可以使用下载和解压缩Android中的Zip文件来下载文件。 我想改用截击库。我该怎么做?

  • 本文向大家介绍怎么下载一个zip文件?相关面试题,主要包含被问及怎么下载一个zip文件?时的应答技巧和注意事项,需要的朋友参考一下 a标签加属性 文件流的方式 注意:Bolb的方式构建完 blob 对象后才会转换成文件,所以尽量使用a标签的形式进行下载

  • 我正在使用Python2.7、mechanize和beautifulsoup,如果有帮助,我可以使用urllib 我打算使用下面的代码来访问第二个表: 我猜class=“fe-form”是错误的,因为它不能工作,但是该表没有其他属性将它与其他表区分开来。所有表都有cellpadding=“0”cellspacing=“0”border=“0”width=“50%”。我想我不能使用find()函数。

  • 问题内容: 我正在尝试使用线程下载多个与模式匹配的文件。该模式可以匹配1或5或10个差异大小的文件。 为了简单起见,可以说下载文件的实际代码在downloadFile()方法中,而fileNames是与模式匹配的文件名列表。我该如何使用线程。每个线程将仅下载一个文件。建议在for循环内创建一个新线程。 问题答案: 您确实想使用ExecutorService而不是单个线程,它更干净,性能可能更高,并

  • 问题内容: 我正在使用简单的文件下载脚本: 它在最大200mb的本地服务器上运行。 当我在我的网站上尝试此代码时,它将下载173KB而不是200MB的文件。 我检查了所有内容,编写了一些自定义代码(使用ob函数和fread而非readfile),但无法下载大文件。 谢谢您的回答。 我正在使用Apache 2.2,PHP 5.3 可以处理所有大文件的所有PHP设置。(执行时间,内存限制,… 问题答案