$file_name="Koala.jpg";
if(!file_exists($file_name)){
echo "ファイルが存在しません"
}
$fp=fopen($ファイル名 ,"r");
$file_size=filesize($file_name);
header("Content-type: application/octet-stream")
header("Accept-Range: bytes") ");
header("Accept-Length: $file_size");
header("Content-Disposition:attachment; filename=".$file_name);
$buffer=1024;
while(!feof($fp) ){
$file_data = fread($fp,$buffer);
fclose($fp)
ディスカッションに返信(解決策)
will echo $file_size;Remove
機能しないようです。次の文をログアウトした後のバイト数を確認するために後で追加しました
エラーの原因:
テキストモードを使用する バイナリファイルを開く
操作時に「b」マークを指定しない場合バイナリ ファイルの場合、破損したイメージ ファイルや rn 文字に関する奇妙な問題など、いくつかの奇妙な問題が発生する可能性があります。
上の階、ありがとうございます。試してみました。前と同じようですが、とにかくありがとう
これは私が少し前にやったことと似ていますが、バイト数も多く、ダウンロードした画像が開けません。
これが解決策です。長い間検索した後に見つけました
// コードの前 (または後) に出力があり、ダウンロードされたファイルにも書き込まれる可能性があるため、ダウンロード時にさらに数バイトが発生します
// ダウンロードされたファイルにはさらにいくつかのバイトがあります。バイトの解決策は、 ob_start(); と ob_end_clean(); を使用して前の出力をクリアします。 ob_start() "); / / 返されたファイル
header (" accept-ranges: bytes ") // バイト サイズに従ってヘッダー (" Content-LENGTH: $ File_size ") に戻ります); -Disposition: filename=".$name); ;//ここでクライアント上のポップアップ ダイアログ ボックスで、対応するファイル名
さらに数バイトを使用すると、画像自体に問題があるはずです
echo $file_size にコメントしただけです。