将文件上传到基于夸脱的服务器

时间:2019-12-02 08:37:43

标签: quart

我正在尝试将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的加载事件。

我的Quart代码如下:

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(请求太大?)。服务器端不记录任何异常或警告。

有什么主意吗?

0 个答案:

没有答案