首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果文件太小,为什么python-magic返回错误的mime类型?

如果文件太小,为什么python-magic返回错误的mime类型?
EN

Stack Overflow用户
提问于 2020-06-25 18:17:36
回答 1查看 461关注 0票数 3

如果文件大小低于5000字节(InMemoryUploadedFile)。此代码不起作用

代码语言:javascript
复制
mime_type = magic.from_buffer(file.read(), mime=True)

它返回错误的mime_type。例如,我有一个大小为4074字节的文件cv.docx。它返回一个mime_type:

代码语言:javascript
复制
'application/x-empty'

而不是

代码语言:javascript
复制
'application/vnd.openxmlformats-officedocument.wordprocessingml.document'

你能给我一些建议来解决这个案子吗?

EN

回答 1

Stack Overflow用户

发布于 2021-01-21 19:56:08

我也遇到过这个问题。这很可能与文件大小无关,因为我也在90字节的文本/纯文本文件上测试过magic.from_buffer,它返回了正确的值。问题是文件不知何故变成了空的。在我的例子中,这是因为文件是一个流,并且我已经从流中读取(请记住,如果您从一个流中读取并再次读取,第二次读取将从第一次读取完成的地方开始--与每次从文件的开头读取不同)。此示例来自flask

代码语言:javascript
复制
mime_type1 = magic.from_buffer(request.stream.read(2048), mime=True) // returns text/plain
mime_type = magic.from_buffer(request.files["file"].stream.read(2048), mime=True) // returns application/x-empty because the stream has already been read from

如果不看你之前的代码,就很难准确诊断,但请检查你还在哪里使用该文件,并将它们注释掉。您可能需要执行以下操作

代码语言:javascript
复制
file.seek(0)
mime_type = magic.from_buffer(file.read(), mime=True)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62573046

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档