在Flask中处理文件上传非常简单。 它需要一个enctype属性设置为'multipart/form-data'的HTML表单,将该文件提交到指定URL。
也可以配置上传文件路径和指定上传文件大小。
实例:upload.html文件中包含一个file和一个提交按钮。
执行action为upload函数,方法为post,同时,需要一个 enctype = "multipart/form-data"属性。
<form action = "http://localhost:5000/upload" method = "POST"
enctype = "multipart/form-data">
<input type = "file" name = "file" />
<input type = "submit" value="提交"/>
</form>
点击提交按钮后,upload_file函数开始处理,从request.files中获取文件, 通过save函数,将文件保存至服务器上。
@app.route('/upload', methods=['GET', 'POST'])
def upload_file():
if request.method == 'POST':
f = request.files['file']
print(request.files)
f.save(secure_filename(f.filename))
return 'file uploaded successfully'
else:
return render_template('upload.html')
如通过浏览器上传一个1.txt文件,文件被保存至项目所在目录。