我在Flask中设置了一个文件限制。当文件被正确上传时,它会阻止超过4mb的文件,并返回413错误。然而,这将关闭服务器上的连接,这意味着重定向不起作用。我想要做的就是在出现这个错误时保持连接打开,这样我就可以重定向用户。
我的文件大小限制设置为:
app.config['MAX_CONTENT_LENGTH'] = 4 * 1024 * 1024
捕获异常的代码是:
try:
form = FileUploadForm();
except Exception as e:
print(e)
flash(u"File size too large: please choose a file under 4mb","danger")
return redirect(url_for("home"))
这是返回的异常:
413 Request Entity Too Large: The data value transmitted exceeds the capacity limit.
代码"return redirect(url_for("home"))“不起作用,我相信是因为错误413导致连接关闭。这是在开发模式下运行的Flask。
我已经尝试了建议答案中的代码,但似乎不起作用。我的代码现在看起来像这样:
@app.errorhandler(413)
def largefile_error(e):
print("Large file")
return redirect(url_for("addsign")), 413
@app.route('/addsign', methods=['GET', 'POST'])
def addsign():
if not current_user.is_authenticated:
flash(f"Please login to upload a sign","danger")
return redirect(url_for('home'))
form = FileUploadForm()
在控制台中,我可以看到以下输出。
Large file
127.0.0.1 - - [13/Jul/2020 18:02:34] "POST /addsign HTTP/1.1" 413 -
发布于 2020-07-13 14:55:20
from flask import redirect
@app.errorhandler(413)
def largefile_error(e):
return redirect(url_for("your_function_name")), 413
你可以参考一下this
https://stackoverflow.com/questions/62869992
复制相似问题