如何用Python Starlette解码Postman上传的MP4文件
解决Starlette接收Postman上传MP4文件的问题
实现步骤
- 解析请求的表单数据:Starlette处理文件上传需先通过
request.form()异步获取multipart/form-data类型的表单内容 - 读取文件内容:从表单中取出文件对象后,通过
read()方法将文件二进制内容读取到变量中
修改后的完整代码
from starlette.requests import Request from starlette.routing import Route from starlette.applications import Starlette from starlette.responses import PlainTextResponse class Post: async def PostValuesToDb(request: Request): # 解析表单数据(包含上传的文件) form_data = await request.form() # 获取上传文件,"file"需与Postman中设置的Key值完全匹配 uploaded_file = form_data.get("file") if uploaded_file: # 将文件二进制内容读取到变量中 file_content = await uploaded_file.read() # 此处可添加对file_content的后续处理逻辑(如存入数据库、本地存储等) print(f"已读取文件内容,大小:{len(file_content)}字节") return PlainTextResponse("true") routes = [ Route("/post", Post.PostValuesToDb, name="PostValuesToDb", methods=["POST"]), ] app = Starlette(routes=routes)
关键说明
await request.form():必须异步调用,用于解析Postman上传文件时使用的multipart/form-data编码格式请求form_data.get("file"):括号内的字符串要和Postman表单中设置的Key完全一致(对应你截图里Key列的内容)await uploaded_file.read():异步读取文件的二进制内容,结果存入file_content变量,可直接用于后续业务处理
内容的提问来源于stack exchange,提问作者SPMK
相关产品推荐
相关产品推荐

