Конкретный параметр конфигурации Apache для отображения изображений через php? - PullRequest
0 голосов
/ 22 марта 2012

Я хочу отобразить изображение с помощью этого сценария php на моем сервере.

$file = fopen('/Volumes/PROMISE/products/jpeg/89239-282.jpg', 'rb');
header('Content-Type: image/jpeg');
fpassthru($file);

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

Я пытался использовать

echo file_get_contents('/Volumes/PROMISE/products/jpeg/89239-282.jpg');

, а также, без какой-либо удачи, файл существует по указанному пути и имеет разрешение 777.

Мойпоследние мысли, что это может быть какой-то конфигурации на сервере apache ..?Не знаете, есть ли даже настройки, которые могут затормозить изображения?

Это настройки файла .htaccess

Options +FollowSymlinks -Multiviews

Это конфигурация из файла httpd.conf

Options All -MultiViews -ExecCGI -Indexes

Я проверил файл mime.types иimage / jpeg активен.

Поэтому я предполагаю, что мой вопрос таков: есть ли вероятность, что настройки apache портят мои изображения.

edit:

Я пытался использовать код от php man

// Create a blank image and add some text
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5,  'A Simple Text String', $text_color);

// Set the content type header - in this case image/jpeg
header('Content-Type: image/jpeg');

// Output the image
imagejpeg($im);

// Free up memory
imagedestroy($im);

На моем локальном компьютере это работает, но не на нашем сервере.Я получаю пустую страницу и без ошибок.

Если я использую imagejpeg со вторым параметром и сохраняю его на рабочем столе, кажется, что все в порядке и полностью доступно для просмотра

1 Ответ

1 голос
/ 22 марта 2012

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

Возможные ошибки, которые приходят на ум: PHP-уведомления или предупреждения, отображаемые на вашем изображении, пустые символы. Например, пустая строка перед открытием может испортить ваше изображение.

...