When MAX_CONTENT_LENGTH
已定义,Flask 应该返回 413,但在我的例子中,它会重置连接并显示以下错误:Error 101 (net::ERR_CONNECTION_RESET): The connection was 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)
我刚刚遇到了类似的问题,将文件上传到烧瓶开发服务器给了我net::ERR_CONNECTION_RESET
铬合金。
基本上,在服务器上的接收视图中,我检查用户的会话是否已过期,如果已过期,我将返回重定向。由于某种原因,这会导致连接重置。我猜这是因为浏览器仍在尝试发送文件,但服务器不需要它(尽管我无法用证据支持这一点)。
我想我会把这个放在这里给那些像我一样来到这里的人。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)