複数のファイルをアップロードするためのファイル アップロード ハンドラがあり、MAX_CONTENT_SIZE を設定しました。ドキュメントには、合計ファイル サイズが制限を超えると Flask が 413 例外をスローすることが記載されているため、カスタム 413 ページを使用して 413 エラー ハンドラーも作成しました。ただし、ファイルのアップロードをテストすると、413 エラーが確実にスローされることがわかりますが、エラー ページが表示されるのではなく、毎回接続が切断されているようです。参考までに、現在、Flask dev サーバーを使用しています。
コード:
app.config['MAX_CONTENT_LENGTH'] = 50 * 1024 * 1024 # 50 Mb limit
@app.route('/upload', methods=['POST'])
def upload_files():
if request.method == 'POST':
uploaded_files = request.files.getlist('uploaded_files[]')
# do some stuff with these files
@app.errorhandler(413)
def error413(e):
return render_template('413.html'), 413
アップデート:
奇妙なことに、この問題は Flask 開発サーバーを使用している場合にのみ発生するようです。Apache でテストしていますが、413 エラー ページは問題なく表示されます。