私はこのコードでpdfファイルを正常にダウンロードしています。私は同じコードを使って、exeを含むzipファイルをダウンロードしています(ファイル名を変更し、MIMEタイプをapplication/zipに変更します)。ダウンロードしたファイルを開こうとするとこのエラーが発生します。 " 圧縮されたフォルダ '[filename]'が無効です"phpダウンロードコードはpdfで動作しますが、zipではありません
オリジナルの圧縮されていないファイルが実行されていることを確認しました。また、ノートブックのフォルダを解凍してexe 。
また、私のウェブサイトからFilezillaを介してzipファイルを一時フォルダにダウンロードし、解凍して実行してアップロードに問題がないことを確認しました。
これは70 MBのファイルなので、65 KBの圧縮されたEXE ---同じエラーをダウンロードしようとしました。
私はヘッダ( "Content-Length:"。$ file_size)を追加しましたが、pdfsはそれがなくてもうまくダウンロードできました---同じエラーです。
私はアプリケーション/オクテットストリーム---同じエラーを試みました。
アイデア?任意の提案が高く評価されました。
$file_size = filesize($file_path);
$file = @fopen($file_path,"r");
if ($file)
{
header("Pragma: public");
header("Cache-Control: public, must-revalidate, post-check=0, pre-check=0");
header("Content-Disposition: attachment; filename=\"$file_name\"");
//header("Content-Length: " . $file_size);
header("Content-Type: " . $ctype);
set_time_limit(0);
fseek($file, 0);
while(!feof($file))
{
print(@fread($file, 1024*8));
ob_flush();
flush();
if (connection_status()!=0)
{
@fclose($file);
exit;
}
}
@fclose($file);
}
あなたはどのようなOSを使用していますか? Windows XP?どのようなプロトコルですか? httpまたはhttps? –
と、なぜあなたはチャンクされたジップフライを読んでいるのですか?タスクをreadfile($ zipfile)することはできませんか? –
Windows 7 Professional、http – jana