使用Flask框架编写上传文件的服务器端也很简单,它与处理get和post参数具有相似的地方,客户端上传的文件相关信息会被保存在flask.request.files对象中,通过这个对象。可以获取上传的文件名和文件对象,然后通过文件对象的save方法将文件保存到指定的目录中
演示一个文件上传的基本的例子:
import flask
app=flask.Flask(__name__)
@app.route('/upload',methods=['GET','POST'])
def upload():
if flask.request.method=='GET':
return flask.render_template('upload.html')
else:
file=flask.request.files['file']
if file:
file.save(file.filename)
return '上传成功'
if __name__=='__main__':
app.run(debug='True')
其中在templates目录中的upload.html文件中写下(上传文件页面的代码):
<!DOCTYPE html>
<html>
<body>
<h2><strong>请你选择一个文件上传</strong></h2>
<form method='post' enctype='multipart/form-data'>
<input type='file' name='file'/>
<input type='submit' value='上传'/>
</form>
</body>
</html>
代码说明:
其中只定义了一个文件上传的业务函数upload函数,同时接受get和post请求,get请求时返回上传页面,post请求时获取上传的文件并保存在当前目录下