微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Flask - 缺少所需文件

如何解决Flask - 缺少所需文件

我正在玩 Python、Flask,我正在尝试创建一个可以接受文件的端点。 基本上我想上传一个随机的 .txt/.json 文件并将其保存在服务器上以供进一步处理。

我的问题

我按照 documentation 构建它。但是,没有像如何构建发布数据的请求这样的信息。 例如,使用 multipart/form-data 并使用表单上传,或将其作为二进制文件上传到正文中。无论如何,我在 Postman 中尝试了所有可能的方法,但没有一个有效,看起来文件只是没有到达服务器。能够将其作为二进制文件上传到请求正文中的最简单解决方案是什么?如果代码看起来不错,我应该在 postman 中配置什么才能上传文件

我的端点

class RawData(Resource):    
    parser = reqparse.RequestParser()
    parser.add_argument('file',type=werkzeug.datastructures.FileStorage,required=True,help="required file is missing",location='files')
    
    def post(self):
        data = RawData.parser.parse_args()
        file = data['file']
        filename = secure_filename(file.filename)
        file.save(os.path.join(app.config['UPLOAD_FOLDER'],filename))
        return redirect(url_for('uploaded_file',filename=filename))

错误消息 - 邮递员 - HTTP 400

{
    "message": {
        "file": "required file is missing"
    }
}

enter image description here

enter image description here

解决方法

原来是 Postman 的问题。仍然没有弄清楚如何发布文件。 但是,CURL 派上用场并通过以下 cmd 解决了该问题:

curl -v -X POST -H "Content-Type: multipart/form-data" -F "file=@file.txt" http://localhost:5000/api/v1/rawdata/newfile

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。