gpt4 book ai didi

python - 当文件太大时,Flask 会重置连接而不是返回 413

转载 作者:行者123 更新时间:2023-12-02 22:11:43 26 4
gpt4 key购买 nike

定义 MAX_CONTENT_LENGTH 时,Flask 应返回 413,但在我的情况下,它会重置连接并显示以下错误:错误 101 (net::ERR_CONNECTION_RESET):连接已重置。

我附上了一个基于 Flask 的文件上传模式构建的示例。

我使用 Chrome 15.0.874.5。

import os
from flask import Flask, request, redirect, url_for, send_from_directory
from werkzeug import secure_filename

UPLOAD_FOLDER = 'uploads/'
ALLOWED_EXTENSIONS = set(['txt', 'pdf', 'png', 'jpg', 'jpeg', 'gif','bib','mp3'])

app = Flask(__name__)
app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER
def allowed_file(filename):
return '.' in filename and \
filename.rsplit('.', 1)[1] in ALLOWED_EXTENSIONS

@app.route('/', methods=['GET', 'POST'])
def upload_file():
if request.method == 'POST':
file = request.files['file']
if file and allowed_file(file.filename):
filename = secure_filename(file.filename)
file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))
return redirect(url_for('uploaded_file',
filename=filename))
return '''
<!doctype html>
<title>Upload new File</title>
<h1>Upload new File</h1>
<form action="" method=post enctype=multipart/form-data>
<p><input type=file name=file>
<input type=submit value=Upload>
</form>
'''

@app.route('/uploads/<filename>')
def uploaded_file(filename):
return send_from_directory(app.config['UPLOAD_FOLDER'],
filename)

@app.errorhandler(413)
def file_to_big(e):
return 'File to big'

if __name__ == '__main__':
app.config['MAX_CONTENT_LENGTH'] = 1024 * 1024
app.run(debug=True)

最佳答案

我刚刚遇到了类似的问题,将文件上传到 Flask 开发服务器时在 Chrome 中出现了 net::ERR_CONNECTION_RESET

基本上,在服务器上的接收 View 中,我检查用户的 session 是否已过期,如果已过期,我将返回重定向。由于某种原因,这会导致连接重置。我猜这是因为浏览器仍在尝试发送文件,但服务器不需要它(尽管我无法用证据支持这一点)。

我想我会把这个放在这里给那些像我一样来到这里的人。

关于python - 当文件太大时,Flask 会重置连接而不是返回 413,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7371660/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com