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ライブラリを使用するかに関係なく、問題が発生しています。

非常に奇妙なことの 1 つは、作成されてサーバーに配置された zip が、 FileZilla を介してダウンロードしたときに問題なく機能することですが、ファイルを強制的にダウンロードすると、すべての賭けが一度オフになります。複数のブラウザで試しましたが、結果はそれぞれ同じです。

本当に忌々しい。この種の機能を実装しようとするのはこれが初めてであることを認めます。おそらく何かが足りないのでしょう。同様の問題に関するいくつかのスレッドを見てきましたが、残念ながら解決策はうまくいきません。提供できるヘルプは大歓迎です。

4

1 に答える 1

4

サーバー上で動作し、ダウンロード時にのみ破損する場合 - ほとんどの場合、PHP が何か( notice? warning? ) を ZIP コンテンツと共にエコーしているため、ダウンロード時に壊れています。ダウンロードした ZIP をテキスト エディターで開き、最初または最後に PHP 出力があるかどうかを確認してください。Linux では次のようになります。

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