前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >FastAPI-文件上传(一)

FastAPI-文件上传(一)

原创
作者头像
堕落飞鸟
发布2023-05-07 21:24:17
1.2K0
发布2023-05-07 21:24:17
举报
文章被收录于专栏:飞鸟的专栏

如何处理文件上传

在FastAPI中,文件上传是通过表单(form)提交的。你可以使用Form来声明一个表单字段,如下所示:

代码语言:javascript
复制
from fastapi import FastAPI, File, Form, UploadFile

app = FastAPI()

@app.post("/files/")
async def create_file(file: bytes = File(...), fileb: UploadFile = File(...), token: str = Form(...)):
    return {"file_size": len(file), "token": token}

上面的代码声明了一个POST方法,它接收一个bytes类型的文件和一个UploadFile类型的文件,还有一个token字符串字段。其中,bytes类型的文件是直接从表单中读取的,而UploadFile类型的文件是FastAPI封装的文件对象,它包含了一些文件的元信息,例如文件名、文件类型、文件大小等。

在这个例子中,我们可以使用filefileb来访问这两个文件。你可以使用len(file)来获取文件的大小,使用fileb.filename来获取文件名。此外,我们还声明了一个token字段,它是通过表单提交的一个字符串。

当然,你也可以通过FormData来声明一个表单对象,例如:

代码语言:javascript
复制
from fastapi import FastAPI, File, Form, UploadFile

app = FastAPI()

@app.post("/files/")
async def create_file(form_data: FormData = Form(...)):
    token = form_data["token"]
    file = form_data["file"].file
    fileb = form_data["file"]
    return {"file_size": len(file.read()), "token": token}

在这个例子中,我们声明了一个FormData对象form_data,然后通过form_data["token"]来获取token字段,通过form_data["file"].file来获取bytes类型的文件,通过form_data["file"]来获取UploadFile类型的文件。你也可以使用len(file.read())来获取文件的大小。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 如何处理文件上传
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档