#php #image #download #gd #attachment
#php #изображение #Скачать #gd #вложение
Вопрос:
Пользователь размещает данные изображения в скрытом поле. Я отправляю форму на пустую страницу. Фактическое изображение создается на стороне сервера с помощью библиотеки GD, а затем пользователь может его загрузить. Пока все хорошо, но Firefox не загружает изображение, он просто отображает его встроенным. Я использую этот код:
header('Content-type: image/jpeg');
header('Content-Disposition: attachment; filename="'.($_POST['savename']?$_POST['savename']:'yourpainting').'.'.$ext.'"');
imagejpeg($imagecreatedbygdlib)
Если я использую ‘application / octet-stream’ или ‘application / force-download’, Firefox просто загружает страницу php.
Комментарии:
1. Правильно ли отображается изображение при встроенном рендеринге? Т.е. есть ли какие-либо ошибки или предупреждения в скрипте?
Ответ №1:
Вам могут понадобиться все следующие заголовки
header("Content-Transfer-Encoding: binary");
header('Content-Description: File Transfer');
header('Content-Type: ' . $file_type);
header('Content-Length: ' . $file_size);
header('Content-Disposition: attachment; filename=' . $file_name);
Чтобы получить file_size, вам нужно либо временно сохранить файл, либо сохранить вывод в буфере.