とっておきの手土産を教えて

ファイルをダウンロードするプログラムなのですが以下ですとちゃんとダウンロードされるのですが、
値(画像アドレス)をフォームで飛ばし、$fpath に放り込んでみると画像はダウンロードされるのですが「ファイルが破損している可能性があります」と表示されてダウンロードされた画像は開くことができません。
プログラム自体は問題ないと思うですが・・・。
原因は何かわかりますでしょうか?

<?php
$fpath = 'http;//aaa.jpg';
$fname = 'aaa.jpg';
header('Content-Type: application/force-download');
header('Content-Length: '.filesize($fpath));
header('Content-disposition: attachment; filename="'.$fname.'"');
readfile($fpath);
};
?>

A 回答 (1件)

};


に対応する{が無いようですが,実際には存在するのでしょうか。
しないのであれば,そこでPHPが警告メッセージを出力していて,それが画像ファイルに混入した可能性があります。
出力されたファイルの末尾を確認してみてはどうでしょうか。

なお,Content-Typeに利用可能なMedia Typesとして,application/force-downloadは登録されていません。
http://www.iana.org/assignments/media-types/medi …
http://www.ietf.org/rfc/rfc2616.txt
私的なMedia Typeには,x.を使うべき,とされています。
http://www.ietf.org/rfc/rfc6838.txt
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報