2010-06-09 3 views
0

Я работаю над переносом веб-сайта с внешнего сервера (с запуском Apache) на локальный сервер (с запуском IIS) и столкнулся с проблемой, которую я не могу решить ,IIS, Apache и заголовок()

Сайт использует пользовательский плагин Joomla, который захватывает некоторые графики, хранящиеся в базе данных mysql (например, http://www.norfolktourism.ca/index.php?option=com_bdirectory&task=image&cid=191). Однако, когда я переношу сайт на локальный сервер, изображения нарушаются.

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

Я абсолютно не понимаю, какова проблема, поскольку код отлично работает на внешнем сервере Apache.

У кого-нибудь есть предложения по возможным разрешениям?

+0

«их, кажется пробельных (как новый строка) обрабатывается »- некоторая проверка грамматики? – leonbloy

+0

«захватывает некоторые графики, хранящиеся в базе данных mysql», вы имеете в виду локальный сервер mysql или внешний сайт через http? – leonbloy

+0

База данных Mysql - это локальная база данных. – MetalAdam

ответ

0

Сложно сказать, и сценарий не ясен. Внешний сервер Apache работает на Linux или Windows? Может быть какая-то ошибка связана с newlines?

Update: Например, для отладки, вы можете запустить это и сравнить с выходом (для того же самого изображения) на сервере IIS:

[[email protected] tmp]# wget -S -O imgunix.jpg 'http://www.norfolktourism.ca/index.php?option=com_bdirectory&task=image&cid=191' 
HTTP request sent, awaiting response... 
    HTTP/1.1 200 OK 
    Date: Wed, 09 Jun 2010 15:18:21 GMT 
    Server: Apache 
    Content-Length: 4406 
    Content-Disposition: filename="health.jpg" 
    Content-Type: image/jpeg 
Length: 4406 (4.3K) [image/jpeg] 

[[email protected] tmp]# od -c imgunix.jpg | head             0000000 377 330 377 340 \0 020 J F I F \0 001 002 \0 \0 d 
0000020 \0 d \0 \0 377 354 \0 021 D u c k y \0 001 \0 
0000040 004 \0 \0 \0 < \0 \0 377 356 \0 016 A d o b e 
0000060 \0 d 300 \0 \0 \0 001 377 333 \0 204 \0 006 004 004 004 
+0

Сервер Apache работает на Linux ... – MetalAdam

+0

Ну, это может быть какая-то связанная с этим проблема. Во-первых, вы должны проверить, что сохраненные изображения в БД не повреждены. Затем, что код, который показывает это, не делает неправильного предположения с новыми символами. – leonbloy

+0

Изображения в порядке - мы взяли копию базы данных с рабочего сервера, поэтому не должно быть никаких проблем с этим. Я просто не могу понять, как внешний сервер имеет новую строку, а локальный - нет. Я изучил возможности использования ob_clean() и подобных функций, но безрезультатно ... – MetalAdam

Смежные вопросы