Flask笔记之文件上传 File Uploads

这篇笔记介绍了在Flask框架中处理文件上传的方法。关键在于HTML表单需设置enctype="multipart/form-data"属性,上传文件通过request对象的files属性访问,每个文件为Python的file对象,提供save()方法保存到文件系统。使用werkzeug的secure_filename方法确保文件名的安全。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在 Flask 中处理文件上传是很容易的,只要确保在 HTML 表单中设置 enctype=“multipart/form-data” 属性。

<form action="/pathtoupload" method="post" enctype="multipart/form-data">
    <p><input type="file" name="filename"></p>
    <p><input type="submit" value="submit"></p>
</form>

上传的文件存储在内存中,可以通过请求对象 request 的 files 属性访问。

f = requests.files['filename'];

每一个上传的文件都存储在其字典中,表现为标准的 Python 文件 file 对象,比之多了一个保存文件 save() 的方法,用以将文件保存到文件系统中。

f.save(pathtosave)

一个文件上传的简单例子

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 属性中

filename = f.filename

不过这个名字是系统外的,如果想要使用它,需要记住要使用 werkzeug 提供的 secure_filename 方法进行保存。

from werkzeug.utils import secure_filename
...
f.save('/var/www/uploads/' + secure_filename(f.filename))

总结

  1. 在 HTML 表单 form 中,设置 enctype=multipart/form-data 属性,并且添加 <input type=file> 标签。
  2. Flask 应用在 请求对象 request 中通过 files 字典访问文件。
  3. 使用 save() 方法保存文件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值