使用 fastapi UploadFile 验证文件类型和扩展名

Rez*_*nik 2 python rest fastapi

我目前正在开发一个小项目,其中涉及创建一个fastapi允许用户上传文件的服务器jar文件的服务器。

基本上我有这条路线:

@app.post("/upload")
async def upload(jar_file: UploadFile = File(...)):
Run Code Online (Sandbox Code Playgroud)

我真的很想检查并验证该文件是否确实是jar文件。

我可以自己实现它,但我很好奇是否fastapi或任何其他包提供此功能。

use*_*127 6

您可以检查 MIME 类型(https://fastapi.tiangolo.com/tutorial/request-files/#uploadfile)。

@app.post("/upload")
async def upload(jar_file: UploadFile = File(...)):
    if jar_file.content_type != "application/java-archive":
        raise HTTPException(400, detail="Invalid document type")
    return {"filename": "jar_file.filename"}
Run Code Online (Sandbox Code Playgroud)