2012-03-31 6 views
0

強制的にダウンロードしようとしています。ここ PHPファイル強制ダウンロードエラー

<?PHP 
// Define the path to file 
$file = 'http://myimage.com/users/test/uploads/1234.png'; 

if(!file) 
{ 
    // File doesn't exist, output error 
    die('file not found'); 
} 
else 
{ 
    header('Content-disposition: attachment; filename='.$file); 
    header('Content-type: application/octet-stream'); 
    readfile($file); 
} 
?> 

は私がFirefoxで取得エラーです:ここに私のコードは「イメージ "ファイル:/// C:/ユーザー/ユーザー名/ダウンロード/ 1234パーセント(4)20 .PNG" はできませんエラーが含まれているために表示されます。 %20(4)はスペースで、おそらく4番目のコピーをダウンロードしようとしました。

答えて

1

Content-Typeが間違っています。ダウンロードを強制するために必要なのは、すべてContent-Disposition: attachmentです。 application/octet-streamの代わりにimage/pngに変更してください。

また、開封<?phpタグの前にスペースがあります。あなたはそれを取り除く必要があります。

また、あなたの「ファイルが存在する」チェックは、あなたが思っていることをしません。ファイルが存在するかどうかを確認するにはfile_existsを使用し、$という記号を覚えておいてください。

+0

大丈夫です。そのファイルは存在しません! hm ...それは変です...変数$ファイルの宛先はブラウザで見ることができます。なぜそれをダウンロードできないでしょうか? – droidus

+0

@droidus:ファイルは別のサーバーにありますか?ファイアウォールがブロックしているか、リモートの 'fopen'が無効になっている可能性があります。 – Ryan

+0

hm、他の人がホストしています。 fopenが無効になっているかどうかを確認するにはどうすればよいですか? – droidus

0

<?php?>タグの外側に空白がないことを確認してください。

+0

ノープ:/ドン空白行はありません – droidus

関連する問題