【发布时间】:2020-10-29 01:52:35
【问题描述】:
我遇到了使用 postman 测试 api 的困难。通过 swagger 文件上传功能正常工作,我在硬盘上保存了一个文件。我想了解如何与邮递员一起执行此操作。我使用标准方式来处理我在使用 Django、flask 时使用的文件。
Body -> form-data: key=file, value=image.jpeg
但是使用 fast API,我得到一个错误
127.0.0.1:54294 - "POST /uploadfile/ HTTP/1.1" 422 Unprocessable Entity
main.py
@app.post("/uploadfile/")
async def create_upload_file(file: UploadFile = File(...)):
img = await file.read()
if file.content_type not in ['image/jpeg', 'image/png']:
raise HTTPException(status_code=406, detail="Please upload only .jpeg files")
async with aiofiles.open(f"{file.filename}", "wb") as f:
await f.write(img)
return {"filename": file.filename}
我也试过body -> binary: image.jpeg。但得到了相同的结果
【问题讨论】:
-
我不在办公桌前,但我曾经遇到过类似的问题。解决方案是简单地将文件添加到
FormDatajavascript 类,然后发送。这会将图像直接附加到请求的正文中。使用 yourkey=file您正在传递多个参数(相对于value=image.jpeg,这是一个额外的参数)。在任何情况下,您都可以通过浏览器的控制台检查您的请求内容并获得启发 -
@lsabi 感谢您的反馈,但我不确定我需要做什么。也许你可以给我看看?