【问题标题】:Flask: Get gzip filename sent from PostmanFlask:获取从 Postman 发送的 gzip 文件名
【发布时间】:2020-03-14 19:17:47
【问题描述】:

我正在从 Postman 向 Flask 端点发送一个 gzip 文件。我可以使用request.data 获取该二进制文件并读取、保存、上传等。

我的问题是我不知道它的名字。我该怎么做?

我的 gzip 文件名为“test_file.json.gz”,我的文件名为“test_file.json”。

我该如何取这些名字?

编辑:

我正在使用 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'

【问题讨论】:

  • 请发布处理上传的代码。
  • 没什么可发的。我需要一种简单的方法来获取该文件的名称。很明显,使用 BytesIO 获取流并没有给我文件名!

标签: python-3.x flask postman


【解决方案1】:

除了评论之外,我认为处理您上传的代码在这里是相关的。

关于request.data,请参阅this answer

request.data 包含传入的请求数据作为字符串,以防它带有 Flask 无法处理的 mimetype。

在flask中处理文件上传的recommended way是使用:

file = request.files['file']
  • file 的类型为:werkzeug.datastructures.FileStorage

  • file.stream 是流,可以用file.stream.read() 或简单的file.read() 读取

  • file.filename 是客户端上指定的文件名。

  • file.save(path) 一种将文件保存到磁盘的方法。 path 应该是类似'/some/location/file.ext' 的字符串

source

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-10
    • 2021-02-19
    • 2022-12-12
    • 2013-11-10
    • 2021-06-15
    • 1970-01-01
    相关资源
    最近更新 更多