【问题标题】:Uploading an image to Flask server将图像上传到 Flask 服务器
【发布时间】:2017-03-29 00:08:35
【问题描述】:

我在使用 Flask 并上传文件时遇到了一些困难,这是我目前的 Flask 代码:

    @app.route('/api/user/update/', methods=['PUT'])
@auth.login_required
def update_user():
        # check if the post request has the file part
    user = User.query.filter_by(id=g.user.id,deleted=0).first()
    try:
        if 'uname' in request.args:
            user.username = request.args['uname']
        if 'password' in request.args:
            user.hash_password(request.args['password'])
        if 'lname' in request.args:
            user.lastname = request.args['lname']
        if 'fname' in request.args:
            user.firstname = request.args['fname']
        if 'address' in request.args:
            user.address = request.args['address']
        if 'preferance1' in request.args:
            user.pre1 = request.args['preferance1']
        if 'preferance2' in request.args:
            user.pre2 = request.args['preferance2']
        if 'preferance3' in request.args:
            user.pre3 = request.args['preferance3']
        if 'file' in request.files:
            file = request.files['file']
            filename = secure_filename(file.filename)
            filename.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))
            #print(filename)
            #print(url_for('upload_file', filename=filename))
            user.image_filename = filename
            user.image_url = url_for('upload_file', filename=filename)
        db.session.commit()
    except:
        print("Error")
        db.session.rollback()
        db.session.flush()
    return jsonify({'user':user.serialize})

如果我从 Postman 添加任何文件作为文件,请求将失败并抛出异常。我不知道为什么。

【问题讨论】:

    标签: python flask


    【解决方案1】:

    我认为你应该写file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename)) 而不是filename.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))file 是一个 File Storage 对象。而filename 只是一个字符串。

    【讨论】:

      猜你喜欢
      • 2022-09-26
      • 1970-01-01
      • 2017-06-22
      • 2013-12-17
      • 2014-03-21
      • 2017-05-31
      • 2013-11-02
      • 2014-03-24
      • 1970-01-01
      相关资源
      最近更新 更多