【问题标题】:Flask file upload returns error 405 method not allowedFlask 文件上传返回错误 405 方法不允许
【发布时间】:2021-08-07 05:13:07
【问题描述】:

下面的代码是用于上传站点中事务的图像的端点正在工作,但由于某种原因,当文件附加到请求时它会不断返回 405 错误,但在没有文件时会正常工作。因此代码在本地和另一台服务器(使用类似的站点代码)上运行,但在控制服务器上运行。

@bp.route("/transaction/<int:transaction_id>/image", methods=['PUT'])
def upload_image_ex(transaction_id):
    transaction = Transaction.query.get(transaction_id)
    
    if not transaction:
        return jsonify(status='failed', message='Transaction Not Found!')
    if transaction.status != 0:
        return jsonify(status='failed', message='Transaction No Longer Pending!')

    if 'images[]' not in request.files:
        return jsonify(status='failed', message='No image uploaded!')

    files = request.files.getlist('images[]')

    for file in files:
        print("dayer")
        unique_filename = str(uuid.uuid4()) + '.' + \
            file.filename.rsplit('.', 1)[1].lower()
        print("dayer")
        file.save(os.path.join(Config.POST_UPLOAD_FOLDER, unique_filename))
        print("dayer")
        save_image(
            unique_filename,
            file,
            Config.POST_UPLOAD_FOLDER,
            Config.BANNER_SIZE,
            isByte=False
        )

        img = TransactionImage()
        img.img = unique_filename
        img.transaction_id = transaction_id
        db.session.add(img)

    db.session.commit()

    return jsonify(
        status='success',
        message='Transaction Image Uploaded',
        data=TransactionSchema().dump(transaction)
    )

【问题讨论】:

    标签: python-3.x flask cpanel http-status-code-405


    【解决方案1】:
    1. 检查你的前端调用,如果方法是PUT
    2. 检查服务器上的反向代理,如 nginx,如果它改变了调用的位置或方法。
    3. 尝试将POSTPATCH ... 方法添加到您的路由中以解决问题。 @bp.route("/transaction/&lt;int:transaction_id&gt;/image", methods=['PUT', 'POST', 'PATCH'])

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-03
      • 2012-08-24
      • 2017-10-15
      • 2021-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-20
      相关资源
      最近更新 更多