gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 04:05:28 25 4
gpt4 key购买 nike

如果文件大小低于 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'
你能建议我解决这个案子的任何建议吗?

最佳答案

我也有这个问题。这很可能与文件大小无关,因为我也在 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)

关于python - 如果文件大小太小,为什么 python-magic 会返回错误的 MIME 类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62573046/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com