Python 我能可靠地找出正确的mime类型来服务不受信任的内容吗?

Python 我能可靠地找出正确的mime类型来服务不受信任的内容吗?,python,web-applications,mime,mime-types,Python,Web Applications,Mime,Mime Types,假设我让用户上传文件到我的服务器,我让用户下载。我想将mime类型设置为除应用程序/八位字节流之外的其他类型,这样,如果浏览器可以直接打开它们,它就可以打开(比如,图像、pdf文件、纯文本文件等)。当然,由于文件是由用户上传的,我不能信任文件扩展名等 有没有一个很好的库,可以用来找出什么mime类型与任意blob相匹配?最好从Python中使用:-) 谢谢 试试。试试。小心文本文件:没有办法知道它们是什么编码,也没有可靠的猜测方法,特别是因为在Windows中创建的大多数文本文件都是8位MBCS

假设我让用户上传文件到我的服务器,我让用户下载。我想将mime类型设置为除应用程序/八位字节流之外的其他类型,这样,如果浏览器可以直接打开它们,它就可以打开(比如,图像、pdf文件、纯文本文件等)。当然,由于文件是由用户上传的,我不能信任文件扩展名等

有没有一个很好的库,可以用来找出什么mime类型与任意blob相匹配?最好从Python中使用:-)


谢谢

试试。

试试。

小心文本文件:没有办法知道它们是什么编码,也没有可靠的猜测方法,特别是因为在Windows中创建的大多数文本文件都是8位MBCS编码,没有语言启发式就无法区分。要将文件的完整内容类型设置为在浏览器中可见,您需要知道编码,而不仅仅是MIME类型。如果您希望允许上载和显示文本,那么使用HTML文本表单比原始文件上载安全得多


另外,请注意,一个文件可以是多种文件类型;例如,自解压ZIP既是有效的Windows可执行文件,又是ZIP文件,两者都可以处理。

小心文本文件:无法知道它们的编码方式,也无法可靠地猜测,特别是因为大多数在Windows中创建的是8位MBCS编码,如果没有语言启发,这些编码是无法区分的。要将文件的完整内容类型设置为在浏览器中可见,您需要知道编码,而不仅仅是MIME类型。如果您希望允许上载和显示文本,那么使用HTML文本表单比原始文件上载安全得多

另外,请注意,一个文件可以是多种文件类型;例如,自解压ZIP既是有效的Windows可执行文件又是ZIP文件,可以视为任意一种