您可以使用Flask轻松处理上传的文件。只要确保不要忘记enctype="multipart/form-data"在HTML表单上设置属性,否则浏览器将根本不会传输您的文件。
上载的文件存储在内存中或文件系统上的临时位置。您可以通过查看files请求对象上的属性来访问这些文件 。每个上载的文件都存储在该词典中。它的行为就像一个标准的Python file对象一样,但是它也具有一种 save()允许您将该文件存储在服务器文件系统中的方法。
from flask import request
@app.route('/upload', methods=['GET', 'POST'])
def upload_file():
if request.method == 'POST':
f = request.files['the_file']
f.save('/var/www/uploads/uploaded_file.txt')
如果您想知道文件在上传到应用程序之前在客户端上的文件名,则可以访问该 filename属性。但是,请记住,这个属性值可以被伪造,因此永远不要相信这个值
如果要使用客户端的文件名将文件存储在服务器上,请通过secure_filename()完成
secure_filename()示例
from flask import request
from werkzeug.utils import secure_filename
@app.route('/upload', methods=['GET', 'POST'])
def upload_file():
if request.method == 'POST':
f = request.files['the_file']
f.save('/var/www/uploads/' + secure_filename(f.filename))
讨论区