【问题标题】:PUT request to upload a file not working in Flask上传文件的 PUT 请求在 Flask 中不起作用
【发布时间】:2012-03-20 23:11:04
【问题描述】:

我正在使用 Flask 开发一个 Web 应用程序。其中一个视图应该通过 PUT 请求接受上传的文件,但是我只能使用 $ curl -F upload=@filename URL 获取 POST 请求才能正常工作。对于诸如$ curl --upload-file filenname URL 之类的 PUT 请求,request.files ImmutableMultiDict 为空。我是在 Flask 中遗漏了什么,还是在使用 curl 时遗漏了什么?

【问题讨论】:

    标签: python http flask http-method http-put


    【解决方案1】:

    PUT 请求与 POST 请求相比有很大不同。通过 PUT 请求,可以使用request.datarequest.stream 访问文件内容。第一个将传入数据存储为字符串,而request.stream 更像是一个文件对象,使其更适合二进制数据:

    with open('uploaded_image.jpg', 'w') as f:
        f.write(request.stream.read())
    

    【讨论】:

    • 是的,我的文件最终出现在 request.data 中,因为 Flask 无法处理其 mime 类型。
    猜你喜欢
    • 2015-09-01
    • 2018-12-28
    • 2015-11-08
    • 1970-01-01
    • 2011-08-30
    • 2018-05-20
    • 1970-01-01
    • 2020-03-24
    • 1970-01-01
    相关资源
    最近更新 更多