Flask框架之文件上传

文件上传

  1. 在模版html中,表单需要指定encotype='multipart/form-data'(相当于文件的格式类型)才能上传文件。
  2. 在后台如果想要获取上传的文件,那么应该使用request.files.get('文件名')来获取。
  3. 保存文件之前,先要使用werkzeug.utils.secure_filename来对上传上来的文件名进行一个过滤。能保证不会有安全问题。
  4. 获取到上传上来的文件后,使用文件对象.save(路径)方法来保存文件。路径=完整路径=路径名+文件名

html页面:


<!DOCTYPE html> 
<html lang="en"> 
<head> 
<meta charset="UTF-8"> 
<title>上传文件</title> 
</head> 
<body> 
	<form action="" method="post" enctype="multipart/form-data"> 
	<table> 
		<tr> 
		<td>头像:</td> 
		<td><input type="file" name="pichead"></td> 
		</tr> 
		<tr> 
		<td>描述:</td> 
		<td><input type="text" name="desc"></td> 
		</tr> 
		<tr> 
		<td></td> 
		<td><input type="submit" value="提交"></td> 
		</tr> 
	</table> 
	</form> 
</body> 
</html>

python启动文件:


from flask import Flask,request,render_template 
import os 
from werkzeug.utils import secure_filename 

app = Flask(__name__) 

#相当于指定存储上传文件的位置
UPLOAD_PATH = os.path.join(os.path.dirname(__file__),'images')

@app.route('/upload/',methods=['GET','POST']) 
def upload(): 
	if request.method == 'GET': 
		return render_template('upload.html') 
	else: 
		desc = request.form.get("desc") 
		pichead = request.files.get("pichead")
		#包装一下 保证文件安全 
		filename = secure_filename(pichead.filename)  
		pichead.save(os.path.join(UPLOAD_PATH,filename)) 
		print(desc) 
		return '文件上传成功' 

if __name__ == '__main__': 
	app.run(debug=True)
	
发布了354 篇原创文章 · 获赞 4 · 访问量 7815

猜你喜欢

转载自blog.csdn.net/weixin_44733660/article/details/103986792