upload.html 文件
<html>
<head>
<title>File Upload</title>
</head>
<body>
<form action="/uploader" method="POST" enctype="multipart/form-data">
<input type="file" name="file" accept=".jpg,.png,.xls,.doc,.xlsx" />
<input type="submit" />
</form>
</body>
</html>
UPLOAD_FOLDER ='upload/'
import setting
app = Flask(__name__)
app.config.from_object(setting)#配置进来
@app.route('/upload')
def upload_file():
return render_template('upload.html')
@app.route('/uploader', methods = ['GET', 'POST'])
def uploader():
if request.method == 'POST':
f = request.files['file'] #调用方法形成对象 ,f对象可以.filename获取文件名也可以f.save*(保存路径) 执行保存动作
f.save(r'./upload/%s'%f.filename) #保存路径格式化进去文件名,保存。
return '上传成功'
name = secure_filename(文件名)
,这个是文件名安全过滤器,它返回ASK码但是它不支持中文。遇到中文会不显示。#项目路径:
mainDir=os.path.dirname(os.path.abspath(__file__))#括号里边获得当前运行文件,到括号外边则是获取文件夹而已。
#静态文件路径,这个JOIN可以拼接路径,配合上面的获取项目路径,可以完整的获得相对路径。
st_Dir=os.path.join(mainDir,'upload')
from flask import send_file
@app.route('/down/<name>')
def down(name):
return send_file(r'./upload/%s'%name,as_attachment=True)