首页 > 解决方案 > 如何检查在 python 中上传的内容类型文件?

问题描述

我想检查上传到我网站的文件类型。我的 HTML 中有一个<input type="file">标签,用户可以使用它上传。有什么方法可以检查没有扩展名的文件类型是什么?

例如:

user uploads `aFile.txt`

应用输出:

uploaded file is mp3

我不想检查文件扩展名。我想检查文件的实际内容。

标签: pythonpython-3.x

解决方案


使用python-magic

>>> import magic
>>> magic.from_file("testdata/test.pdf")
'PDF document, version 1.2'
# recommend using at least the first 2048 bytes, as less can produce incorrect identification
>>> magic.from_buffer(open("testdata/test.pdf").read(2048)) 
'PDF document, version 1.2'
>>> magic.from_file("testdata/test.pdf", mime=True)
'application/pdf'

推荐阅读