1

我正在尝试将我的 Flask 服务器转换为 Quart。

我有一个包含文件输入的表单,我将其发送到服务器。它曾经与 Flask 完美配合,但现在我无法发送文件。

这是有效的代码:

app = Flask(__name__)

@app.route('/upload', methods=('POST',))
def process_form_data():
    for name, file in request.files.items():
        print(f'Processing {name}: {len(file.read())}')
    return make_response(jsonify({"message": "File uploaded"}), 200)

发送代码为:

const request = new XMLHttpRequest();
function check_and_post(e) {
    const formElement = e.target;
    request.addEventListener("load", function (e) {
        if (request.status == 200) {
          window.location.href = '/work';
        }
        else {
          alert('Error uploading file');
          console.log(e);
        }
    });
    // request error handler
    request.addEventListener("error", function (e) {
        alert('Error uploading files, try again.');
    });
    request.open("post", formElement.action);
    request.responseType = "json";
    request.send(new FormData(formElement));
}

我的烧瓶代码使用了这些文件,并且收到了状态为 200 的加载事件。

我的夸脱代码如下:

app = Quart(__name__)

@app.route('/upload', methods=('POST',))
async def process_form_data():
    for name, file in (await request.files).items():
        print(f'Processing {name}: {len(file.read())}')
    return make_response(jsonify({"message": "File uploaded"}), 200)

现在我进入“上传文件错误”分支,即收到的进度事件请求状态不是 200(我没有收到任何错误事件请求)。

我现在加载的请求状态为 413(请求太大?)。服务器端不记录任何异常或警告。

任何想法?

4

0 回答 0