未知的文件typesMIME?

如果上传的文件没有扩展名,我必须指定一个MIMEtypes吗? 换句话说,是否有一个默认的一般MIMEtypes?

你可以使用application/octet-stream来处理未知的types。

RFC 2046在第4.5.1节中声明:

“八位字节stream”子types用于表示一个正文包含任意的二进制数据。

RFC资源:

我们应该使用RFC-7231(HTTP / 1.1语义和内容)作为参考,而不是RFC-2046(媒体types),因为问题很明显是关于HTTP内容types。

RFC-2046也没有明确定义未知types,但是RFC-7231确实如此。

简短的回答:

不要发送未知数据的MIMEtypes。
要更清楚:不要使用Content-Type头。

参考文献:

RFC-7231
超文本传输​​协议(HTTP / 1.1):语义和内容
3.1.1.5。 内容types

生成包含有效载荷主体的消息的发送者应该
在该消息中生成一个Content-Type头域,除非
封闭表示的预期媒体types是未知的
发件人。

如果你不确定的话,那部分清楚地告诉你把它排除在外。 它还告诉接收者可以假设这个types是应用/八位字节stream,但是事情是它也可能是别的东西。

那有什么不同呢?

RFC-2046
4.5.1。 八位字节stream子types

build议采取的措施为执行收到一个
“application / octet-stream”实体只是简单地提供数据
在文件中,撤消任何Content-Transfer-Encoding,或者也可以
用它作为用户指定进程的input。

而且,如上所述:

RFC-7231
3.1.1.5。 内容types

如果Content-Type头字段不存在,则接收者可以假定媒体types为“application / octet-stream”
([RFC2046],第4.5.1节)或检查数据以确定其types。

结论:

如果你把它定义为“application / octet-stream”,那么你告诉你知道它是“application / octet-stream”。

如果你没有定义它,那么你告诉你,你不知道它是什么,然后决定接收器和接收器,然后可以检查它是否像鸭子一样走路…

我更喜欢application/unknown ,但是结果肯定会和application/octet-stream