我正在尝试将我的 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(请求太大?)。服务器端不记录任何异常或警告。
任何想法?