Использование MIME-типа для определения встроенного изображения

Продолжая обсуждение из темы Добавить настройку для отключения хотлинкинга больших файлов изображений:

Я хотел бы предложить определять изображения по MIME-типу, а не по расширению.

Сценарий использования:

Я вставляю ссылку на JPG:

Файл не имеет расширения JPG, но заголовок content-type передан корректно, поэтому я хотел бы, чтобы Discourse автоматически преобразовывал такую ссылку в тег , отображал изображение inline и даже разрешал хотлинкинг.

Я считаю, что было бы полезно определять изображения для однобоксинга (преобразование в тег ) не по расширению, как это делается сейчас, а по MIME-типу.

6 лайков

Easy to work around though just add ?x=.jpg to the end of any URL.

https://freecannabis.com/media/dscf1924.36/full?x=.jpg

1 лайк

Thanks. But that doesn’t quite solve the problem. I’m already using workaround to add img tag manually. My users are not technically skilled so automatic form of hotlinking would be great.

I think it is super bad form to have images that look like HTML web pages so I would object to this being supported as it encourages super bad web hosting habits.

1 лайк

I agree it is bad practice of the image hoster, but you know - " be tolerant in what you accept "

And second, we already are pinging the URL, so why not use it to our benefit?

[edit]
Funny side note: I’ve just found that image hoster is using Xenforo Media Gallery paid plugin :slight_smile:

2 лайка

I’m going to disagree with you here. When you get the “Content-Type:” header, that’s when you know what you are dealing with. Otherwise a URL without an extension doesn’t look like anything, not “looks like HTML”.

This is how content negotiation on the web is supposed to work. I should be able to make a directory full of files, and return different versions of them depending on the “Accept” headers the browser offers. If you don’t explicitly say “Accept: image/x-mycoolformat”, but just a “Accept: /”, then maybe I want to hand you image/jpeg, but otherwise give you mycoolformat.

1 лайк

By that logic, page titles and urls also don’t matter. But we all know they do. So I violently disagree on this point.

Page titles have many uses, eg distinguishing tabs and titling bookmarks. URLs matter only because Google thinks they should. But I won’t press the point further.