2012-05-02 1 views
0

Хорошо, вот мой код:Не могу заставить скачать изображения даже с буферизацией вывода на

$file='dir/xxx/'.$images[0].'.jpg'; 
header('Content-Description: File Transfer'); 
header('Content-Type: application/octet-stream'); 
header('Content-Disposition: attachment; filename="'.basename($file).'.jpg"'); 
header('Content-Transfer-Encoding: binary'); 
header('Expires: 0'); 
header('Cache-Control: must-revalidate'); 
header('Pragma: public'); 
header('Content-Length: ' . filesize($file)); 
readfile($file); 

Когда я осмотреть мои заголовки, они кажутся Content-Type:text/html и не мой тип предназначен. Он просто выводит исходные данные изображения на экран. Пожалуйста, помогите!

Позже редактирование: Я удалил все функции управления ob_ *, результатом будет то же самое.

+0

Я не думаю, что вы хотите буферизировать такие заголовки ... – prodigitalson

+0

@prodigitalson Пожалуйста, пришлите правильное предложение. – Gabriel

+0

Вы уверены, что заголовки arent уже отправлены в другом месте приложения? – prodigitalson

ответ

0

ob_clean уничтожает выходной буфер, очищая ваш заголовок.

Также вам не нужно, что ob_* функция, вы можете безопасно удалить, что

+0

Результат тот же. Я отредактировал мой пост – Gabriel

+0

убрать все ob_ * function – dynamic

+0

сделал это, тот же результат – Gabriel

0

Там, кажется, не является причиной для буферизации ваших заголовков в первую очередь, так что вы могли бы, вероятно, удалить их.

Если вы этого не хотите, вот в чем проблема. Вы очищаете свой буфер, прежде чем вы его очистите. Попробуйте удалить ob_clean(). Кроме того, вам, возможно, придется использовать ob_flush() вместо flush().

+0

Результат то же самое, я отредактировал мой пост – Gabriel

+0

Вы вообще пытались удалить буферизацию? – Honoki

+0

Да, то же самое :) – Gabriel