请稍候,加载中....

文件上传

您可以使用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))

 


Python学习手册-