具体操作流程
from flask import Flask, render_template, request, redirect, url_for, make_response, abort
from werkzeug.routing import BaseConverter
from os import path
from werkzeug.utils import secure_filenam
@app.route('/upload', methods=['GET', 'POST'])
def upload(): # 定义一个upload函数用来加载文件
if request.method == 'POST':
f = request.files['file']
basepath = path.abspath(path.dirname(__file__)) # 获取当前文件的绝对路径
filename = secure_filename(f.filename)
upload_path = path.join(basepath, 'static', 'uploads', filename) # 文件要存放的目标位置
f.save(upload_path)
return redirect(url_for('upload'))
return render_template('upload.html')
在浏览器中输入时,出现IOError: [Errno 13] Permission denied: 'E:\\git\\test\\static\\uploads'
http://127.0.0.1:5000/upload
有如下俩种解决方法
1. 第一种
1 @app.route('/upload',methods=['GET','POST']) 2 def upload(): 3 if request.method=='POST': 4 f = request.files['file'] 5 basepath = path.abspath(path.dirname(__file__)) 6 filename = secure_filename(f.filename) 7 upload_path=path.join(basepath,'static','uploads',filename) 8 f.save(upload_path) 9 return redirect(url_for('upload')) 10 return render_template('upload.html')
2. 第二种
1 @app.route('/upload',methods=['GET','POST']) 2 def upload(): 3 if request.method=='POST': 4 f = request.files['file'] 5 filename = secure_filename(f.filename) 6 f.save(path.join('static/uploads',filename)) 7 return redirect(url_for('upload')) 8 return render_template('upload.html')