2015-06-16 2 views
1

У меня проблема с загрузкой изображений с помощью функции заголовка PHP: изображение загружается правильно, можно просматривать в Photoshop, но не открывается в Windows Photo Viewer и MacOS Preview. Здесь ист в (простой) код, я использую:Загрузка изображения с заголовком PHP: изображения не отображаются в Windows Photo Viewer и MacOS Preview

header('Content-type: image/jpg'); 
header('Content-Disposition: attachment; filename="'.$url.'"'); 
readfile($image); 

Спасибо вам так много,

Alex

+1

'filename' - это то, что вы хотите, чтобы файл был назван на клиенте. это ** НЕ ** URL-адрес файла. например вы хотите 'filename = kittens.jpg', а не' filename = http: // example.com/kittens.jpg'. –

+0

Да, вы правы. имя переменной немного вводит в заблуждение; имя файла сохраняется как «url» в базе данных, вот почему подпись. – AlexTheNoob

ответ

0

Я нашел решение (может быть интересным для других): Просто не выполнять каких-либо HTML/JavaScript, прежде чем будет выполнен код заголовка PHP. В противном случае код HTML/Javascript записывается внутри файла изображения, и поэтому он не может отображаться в Windows Photo Viewer и т. Д. Photoshop, похоже, как-то отфильтровывает его.