загрузить php file force

Когда я использую этот код для загрузки этого изображения (используется только для тестирования), я открываю загруженное изображение, и все, что он дает мне, является ошибкой. Я попробовал его в хроме. открывая его с помощью окна просмотра фотографий, он говорит, что он не может отобразить изображение, потому что он пуст ??? вот код:

<?PHP // Define the path to file $file = 'http://img.ruphp.com/download/469x264.jpg'; if(!file) { // File doesn't exist, output error die('file not found'); } else { header('Content-Description: File Transfer'); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename='.basename($file)); header('Content-Transfer-Encoding: binary'); header('Expires: 0'); header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); header('Pragma: public'); header('Content-Length: ' . filesize($file)); ob_clean(); flush(); readfile($file); exit; } ?> 

У меня был шанс разобраться. Ваша проблема в два раза.

Сначала удалите www. от url.

Во-вторых, удалите вызов filesize($file) который выдает ошибку, потому что PHP не знает размер файла, прежде чем он загрузит файл. (действительно, просто удалите всю строку)

Убрав эти две вещи, я добился успеха.

Замените ob_clean() на ob_end_clean()

Вы по-прежнему буферизуетесь, поэтому ни одно содержимое изображения не попадает в браузер.

Заменить:

 ob_clean(); flush(); readfile($file); 

С:

 echo get_file_contents($file); 

Если ваше намерение – это просто загрузить файл от третьего лица по щелчку ссылки, вы можете использовать новую загрузку свойств в теге привязки.

Код будет выглядеть примерно так:

 <a download href="path/to/the/download/file"> Clicking on this link will force download the file</a> 

Он работает на последней версии Firefox и Chrome. Должен ли я упоминать, что я не проверял его в IE? :П