2

目前想知道是否有人遇到过损坏的 zip 文件。我目前正在使用以下代码

// Multiple File Downloads

require_once('includes/pclzip.lib.php');

$archive = new PclZip('archive.zip');

$v_list = $archive->create('robots.txt,index.php');

if ($v_list == 0) {
  die("Error : ".$archive->errorInfo(true));
}

$file_url = 'archive.zip';

header('Content-Type: application/zip');

header("Content-disposition: attachment; filename=\"" . basename($file_url) . "\""); 

readfile($file_url);

要创建一个 zip 存档并强制 zip 下载,最终这将通过单击按钮启动,但现在我只是尝试创建一个实际工作的存档。

无论我是使用内置ZipArchive类还是使用PclZip库,我都会遇到问题。

一件非常奇怪的事情是,当我通过 FileZilla 下载它时,创建并放置在服务器上的 zip工作得很好,但是如果我强制下载文件,所有的赌注都会被取消。我在多个浏览器中尝试过,每个浏览器的结果都是一样的。

真烦人。我承认这是我第一次尝试实现这种类型的功能,所以也许我遗漏了一些东西。我已经看到了一些关于类似问题的主题,但不幸的是,这些解决方案对我不起作用。可以提供的任何帮助将不胜感激。

4

1 回答 1

4

如果它在服务器上工作并且仅在下载时损坏 - 很可能PHP 正在回显某些内容(注意?警告?)以及 ZIP 内容,所以它在下载时被破坏。尝试使用文本编辑器打开您下载的 ZIP,并在开始或结束时检查一些 PHP 输出。在linux上它将是:

cat downloaded.zip | tail
cat downloaded.zip | head
于 2015-03-23T18:58:34.197 回答