我正在从 Postman 向 Flask 端点发送 gzip 文件。我可以使用该二进制文件request.data
并阅读、保存、上传等。
我的问题是我不知道它的名字。我怎样才能做到这一点?
我的 gzip 文件名为“test_file.json.gz”,我的文件名为“test_file.json”。
我怎样才能取这些名字?
Edit:
我正在使用 io.BytesIO() 获取流数据,但该库不包含名称属性或其他内容,尽管如果我只是执行以下操作,我可以在字符串中看到文件名:
>>>print(request.data)
>>>b'\x1f\x8b\x08\x08\xca\xb1\xd3]\x00\x03test_file.json\x00\xab\xe6RPP\xcaN\xad4T\xb2RP*K\xcc)M5T\xe2\xaa\x05\x00\xc2\x8b\xb6;\x16\x00\x00\x00'
除了评论之外,我认为处理您上传的代码与此处相关。
See 这个答案 https://stackoverflow.com/a/16664376/2052575关于request.data
:
request.data
包含传入的请求数据作为字符串,以防它带有 Flask 无法处理的 mimetype。
The 推荐方式 https://flask.palletsprojects.com/en/1.1.x/patterns/fileuploads/#a-gentle-introduction在 Flask 中处理文件上传的方法是使用:
file = request.files['file']
file
那么类型是:werkzeug.datastructures.FileStorage https://werkzeug.palletsprojects.com/en/0.15.x/datastructures/#werkzeug.datastructures.FileStorage.
file.stream
是流,可以用以下命令读取file.stream.read()
或者简单地file.read()
file.filename
是客户端指定的文件名。
file.save(path)
将文件保存到磁盘的方法。path
应该是一个像这样的字符串'/some/location/file.ext'
source https://github.com/pallets/werkzeug/blob/d129d17066768238139b8f8a5d667d9a4f4d68db/docs/datastructures.rst#others
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)