私は次のようにPHPの力のダウンロードスクリプトを使用しています: -URL内にスペース(%20)を含めると、PHP Force Downloadスクリプトが動作しないのはなぜですか?
$file_Name = $_GET['name'];
$file_Url = $_GET['file'];
header("Cache-Control: public");
header("Content-Description: File Transfer");
header("Content-Disposition: attachment; filename=$file_Name");
header("Content-Type: application/octet-stream");
header("Content-Transfer-Encoding: binary");
readfile($file_Url);
exit;
私のリンクのURLが似ている場合: -/image.php?name=Germany.png &ファイル= HTTPS%3A% 2F%2Fmaps.google.com%2Fmaps%2Fapi%2Fstaticmap%3Fcenter%3D ドイツ%26zoom%3D15%26size%3D240x320%26maptype%3Droadmap%26mobile%3Dtrue%26sensor%3Dfalse、これは問題なく動作しています!
URLの中にスペース(%20)を入れて訪問しようとすると、ブラウザに「ダウンロードが失敗しました」と表示されます。
例URL: -/image.php?name=Image.png &ファイル= HTTPS%3A%2F%2Fmaps.google.com%2Fmaps%2Fapi%2Fstaticmap%3Fcenter%3D リバー%20Annan %26zoom%3D15%26size%3D240x320%26maptype%3Droadmap%26mobile%3Dtrue%26sensor%3Dfalse
これはどうしてですか?何が間違っているのですか?
の一般的な危難のため、実際の質問は気圧私には謎である理由を尋ねながら、私はこのスクリプトがあることを指摘したいと思いますすごく危ない。誰かがファイルに "config.php"と入力して、そのような設定ファイルを持っていたら。すべての機密情報が表示されます。入力をフィルタリングしてから使用する必要があります。 'filter_input(INPUT_GET、 'file'、FILTER_VALIDATE_URL)' – Grumpy