Загрузить GD image как вложение php

#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, вам нужно либо временно сохранить файл, либо сохранить вывод в буфере.