Python如何获取Postman无URL发送的文件对象并实现读取保存
Python处理POST/PUT接口上传文件的实现方法
以下为两种主流Python Web框架的操作方案,适配Postman form-data格式上传文件的场景:
1. Flask框架实现
1.1 获取文件对象
- 从
request.files中读取和Postman form-data字段对应的文件对象即可,示例中字段名为file,可根据你的实际配置修改:
from flask import Flask, request app = Flask(__name__) @app.route('/upload', methods=['POST', 'PUT']) def upload_file(): # 获取上传的文件对象 file_obj = request.files.get('file') if not file_obj: return {"code": 400, "msg": "未检测到上传文件"}, 400
1.2 读取内容并保存
- 可直接调用内置保存方法,也可手动读取内容后自定义写入:
# 方法1:直接保存到指定路径 save_path = f'./{file_obj.filename}' file_obj.save(save_path) # 方法2:手动读取内容写入,适合需要中间修改文件内容的场景 # content = file_obj.read() # with open(save_path, 'wb') as f: # f.write(content) return {"code": 200, "msg": "文件保存成功", "save_path": save_path} if __name__ == '__main__': app.run(port=5000)
2. FastAPI框架实现
2.1 获取文件对象
- 用框架内置的
UploadFile依赖直接注入获取文件对象:
from fastapi import FastAPI, File, UploadFile import uvicorn app = FastAPI() @app.put('/upload') @app.post('/upload') async def upload_file(file: UploadFile = File(None)): if not file: return {"code": 400, "msg": "未检测到上传文件"}
2.2 读取内容并保存
# 读取文件内容并写入本地 save_path = f'./{file.filename}' content = await file.read() with open(save_path, 'wb') as f: f.write(content) # 操作完成后关闭文件对象释放资源 await file.close() return {"code": 200, "msg": "文件保存成功", "save_path": save_path} if __name__ == '__main__': uvicorn.run(app, port=8000)
注意:Postman发送请求时需要选择
form-data格式,对应文件字段的类型要切换为File而非默认的Text,字段名需要和代码里读取的key保持一致。
内容的提问来源于stack exchange,提问作者PSD
相关产品推荐
相关产品推荐

