2

私はrarファイルをダウンロードするためのコードを書きましたが、うまくいきますが

      $name = 'file.rar';
      $data = file_get_contents("file.rar");
      $fh = fopen("$name", 'w') or die("can't open file");
      fwrite($fh, $data);
      fclose($fh);

      header("Cache-Control: public");
      header("Content-Description: File Transfer");
      header("Content-Length: ". filesize("$name").";");
      header("Content-Disposition: attachment; filename=$name");
      header("Content-Type: application/octet-stream; "); 
      header("Content-Transfer-Encoding: binary");
      readfile($name);
      exit;

ダウンロード後、そのファイルを開いているときに予期しないアーカイブの終了というエラーが表示され、完全に抽出されません。事前にいくつかの提案をお願いします

4

2 に答える 2

1

Webサーバーで次のコードを使用してZIPファイルを作成できます

<?php
$za = new ZipArchive();

$za->open('test_with_comment.zip');
print_r($za);
var_dump($za);
$za->addFile('index.txt', 'newname.txt'); // original file , file to be added in zip

echo "numFiles: " . $za->numFiles . "\n";
echo "status: " . $za->status  . "\n";
echo "statusSys: " . $za->statusSys . "\n";
echo "filename: " . $za->filename . "\n";
echo "comment: " . $za->comment . "\n";

for ($i=0; $i<$za->numFiles;$i++) {
    echo "index: $i\n";
    print_r($za->statIndex($i));
}
echo "numFile:" . $za->numFiles . "\n";
?> 

その後、ダウンロード用のリンクを提供できます..

于 2012-06-22T06:06:13.363 に答える
1

この file.rar はコード経由で生成されていますか? これらのコードなしであなたのコードを試しました

      $data = file_get_contents("file.rar");
      $fh = fopen("$name", 'w') or die("can't open file");
      fwrite($fh, $data);
      fclose($fh);

私にとってはうまくいきます。

于 2012-06-22T06:49:58.293 に答える