Nginx не отображаются загруженные изображения из DSLR? - PullRequest
0 голосов
/ 29 апреля 2020

У меня есть страница, которая берет изображение, загружает его на мой сервер, обрабатывает его, а затем снова отображает его для пользователя. Эта страница прекрасно работает с любым изображением, jpg, jpeg или png, и я даже заставил ее работать с изображениями, снятыми с помощью функции «сделать фотографию» на мобильном устройстве. Но, похоже, есть один последний тестовый пример, который я не могу приступить к работе, - это фотографии, которые я сделал на своей DSLR и сохранил с карты SD на свой компьютер.

Есть ли что-то особенное в этих изображениях, с которыми мне приходится обращаться по-разному? Возможно, что-то в данных exif? Они загружаются просто отлично, и они не больше, чем другие загруженные высококачественные изображения, такие как «сделай фотографию» (я уменьшаю их, чтобы получить все фотографии максимум на ~ 1 Мб, если это имеет значение, и я настроил свой nginx, чтобы разрешить загрузку до 50 МБ). Если я перезагружаю их с моего сервера, они открываются просто отлично, поэтому я знаю, что изображение не повреждено никоим образом.

У кого-нибудь есть понимание? Если вам нужен какой-либо из моих файлов кода / конф., Я с удовольствием отредактирую их в этом сообщении.

1 Ответ

1 голос
/ 29 апреля 2020

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

Пожалуйста, посмотрите на расширения. Вполне возможно, что DSLR называет их как .JPEG или .JPG, и, скорее всего, все остальные - .jpg или .jpeg.

Попробуйте записать то же расширение с рабочими.

Проблема, лежащая в основе здесь, - определения типов MIME. Ваша конфигурация nginx должна иметь файл mime.types с блоком типов {}.

Если nginx не видит подходящий тип MIME для вашего расширения, он использует «application / octet-stream», который не является видимым типом MIME для браузеров.

types {
text/html                             html htm shtml;
text/css                              css;
text/xml                              xml;
image/gif                             gif;
image/jpeg                            jpeg jpg;
application/x-javascript              js;
application/atom+xml                  atom;
application/rss+xml                   rss;

text/mathml                           mml;
text/plain                            txt;
text/vnd.sun.j2me.app-descriptor      jad;
text/vnd.wap.wml                      wml;
text/x-component                      htc;

image/png                             png;
image/tiff                            tif tiff;
image/vnd.wap.wbmp                    wbmp;
image/x-icon                          ico;
image/x-jng                           jng;
image/x-ms-bmp                        bmp;
image/svg+xml                         svg svgz;
image/webp                            webp;
}

Это пример блока типа, который вы можете ясно видеть .jpeg и .jpg определены как image / jpeg, а не .JPEG.

...