如果文件大小低于5000字节(InMemoryUploadedFile)。此代码不起作用
mime_type = magic.from_buffer(file.read(), mime=True)它返回错误的mime_type。例如,我有一个大小为4074字节的文件cv.docx。它返回一个mime_type:
'application/x-empty'而不是
'application/vnd.openxmlformats-officedocument.wordprocessingml.document'你能给我一些建议来解决这个案子吗?
发布于 2021-01-21 19:56:08
我也遇到过这个问题。这很可能与文件大小无关,因为我也在90字节的文本/纯文本文件上测试过magic.from_buffer,它返回了正确的值。问题是文件不知何故变成了空的。在我的例子中,这是因为文件是一个流,并且我已经从流中读取(请记住,如果您从一个流中读取并再次读取,第二次读取将从第一次读取完成的地方开始--与每次从文件的开头读取不同)。此示例来自flask
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如果不看你之前的代码,就很难准确诊断,但请检查你还在哪里使用该文件,并将它们注释掉。您可能需要执行以下操作
file.seek(0)
mime_type = magic.from_buffer(file.read(), mime=True)https://stackoverflow.com/questions/62573046
复制相似问题