- 模板文件
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>文件上传</title>
</head>
<body>
<form action="/pic/show/", method="post", enctype="multipart/form-data">
<input type="file", name="photo">
<input type="submit">
</form>
</body>
</html>
- 视图函数
@pic.route('/save/', methods=["POST"])
def save_file():
# 获取文件上传对象
pic_up = request.files.get('photo')
if pic_up:
pic_name = pic_up.filename
# current_app代表应用程序对象
path = os.path.join(current_app.config['UPLOAD_FOLDER'], pic_name)
pic_up.save(path)
return render_template('photo.html', path='upload/' + pic_name)
else:
return "未选择文件"
- 上传限制设置
@pic.route('/show/', methods=['POST'])
def show_pic():
pic_up = request.files.get('photo')
if pic_up and allowed_file(pic_up.filename):
pic_name = pic_up.filename
path = os.path.join(current_app.config.get('UPLOAD_FOLDER'), pic_name)
pic_up.save(path)
if os.path.getsize(path) <= current_app.config.get('MAX_SIZE'):
return render_template('photo.html', path='upload/' + pic_name)
else:
os.remove(path)
return "文件过大!!!"
else:
return "文件不存在或文件格式错误!!!"
其中,allowed_file函数为:
def allowed_file(file_name):
suffix = current_app.config["ALLOWED_SUFFIX"]
ext = os.path.splitext(file_name)[1]
if ext != '':
ext = ext[1:]
return ext in suffix
else:
return False
配置文件中的信息为:
ALLOWED_SUFFIX = ['jpg', 'jpeg', 'png']
MAX_SIZE = 1024 * 1024