Flask上传小文件报413 Request Entity Too Large问题求助
解决Flask文件上传413 Request Entity Too Large错误
核心问题:curl命令用法错误
你当前使用curl -d @it_return_2020_21.pdf ...发送请求,-d参数是用来传递普通表单数据的,会把PDF文件内容直接作为请求体发送,这种格式不符合Flaskrequest.files期望的multipart/form-data文件上传规范,反而会因为请求体解析异常触发413错误(即便文件本身只有275KB)。
修正后的curl命令
改用-F参数指定文件字段,这是HTTP文件上传的标准格式:
curl -F "file=@it_return_2020_21.pdf" http://127.0.0.1:5000/upload-pdf
代码补充优化点
虽然当前错误源自curl命令,但你的代码还有几处需要完善的地方,避免后续出现其他问题:
- 配置上传目录:取消注释
file.save代码前,需要先配置上传目录并确保目录存在:import os from flask import Flask, request, jsonify from werkzeug.utils import secure_filename app = Flask(__name__) app.config['MAX_CONTENT_LENGTH'] = 16 * 1000 * 1000 # 16MB # 添加上传目录配置 app.config['UPLOAD_FOLDER'] = '/path/to/your/upload/directory' # 确保目录存在,不存在则创建 os.makedirs(app.config['UPLOAD_FOLDER'], exist_ok=True) # 剩余代码保持不变... - 简化扩展名判断逻辑:无需同时列出
.pdf和.PDF,直接转小写后判断即可:def allowed_file(filename): return "." in filename and filename.rsplit(".", 1)[1].lower() == 'pdf'
内容的提问来源于stack exchange,提问作者Echchama Nayak
相关产品推荐
相关产品推荐

