使用MIME类型检测嵌入图像

继续讨论 添加设置以禁用大型图像文件的直接链接

我提议根据 MIME 类型而非文件扩展名来检测图像。

使用场景:

我在行中放入一个 JPG 链接:


该文件没有 JPG 扩展名,但正确发送了 content-type,因此我希望 Discourse 能自动将其更新为 img 标签,内联显示,甚至允许直接链接。

我认为,检测用于一键打包(更新为 img 标签)的图片时,不应像当前那样依赖扩展名,而应基于 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.