文件上传
参考网站:
http://docs.jinkan.org/docs/flask/patterns/fileuploads.html
file_obj= request.files.get(‘文件标签的name属性值’),返回值是FileStorage类型。
可以调用file_obj.filename属性获取上传文件的名字。
通过调用**file_obj.save(path)**方法将文件保存到指定的path路径。
html模板:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>上传文件</title>
</head>
<body>
<form method="post" action="/t2" enctype="multipart/form-data">
<table>
<tr>
<td>用户名</td>
<td><input name="username" value="yong"></td>
</tr>
<tr>
<td>头像</td>
<td><input name="image" type="file"></td>
</tr>
<tr>
<td></td>
<td><input type="submit" value="OK"></td>
</tr>
</table>
</form>
</body>
</html>
视图和路由:
from flask import Flask, redirect, url_for, render_template, request
app = Flask(__name__)
@app.route('/t1', methods=['GET'])
def t1():
return render_template('t1.html')
@app.route('/t2', methods=['POST'])
def t2():
# 获取post文本参数
username = request.form.get('username')
# 获取post文件参数,返回值是FileStorage类型
image = request.files.get('image')
print('文件的名字:', image.filename)
# 保存
image.save(image.filename)
# 响应
return 'OK'
if __name__ == '__main__':
app.run(debug=True)
# 配置文件上传的路径
app.config['FILE_UPLOAD_PATH'] = os.path.join(app.config.get('BASE_DIR'), 'static/img')
@app.route(rule='/file/', methods=['POST'])
def file2():
# 接收多个值
hobby = request.form.getlist('hobby')
file = request.files.get('image')
# 设置上传地址
file.save(os.path.join(app.config.get('FILE_UPLOAD_PATH'), file.filename))
return '成功'