All about

FastAPI에서 UploadFile 사용하여 전달받은 파일의 확장자(extension) 확인하려면 다음과 같은 코드를 사용할 있습니다. 코드는 파일 이름에서 확장자를 추출하고, 허용된 확장자 목록과 비교하여 유효성을 검사합니다.

from fastapi import FastAPI, UploadFile, File, HTTPException

app = FastAPI()

ALLOWED_EXTENSIONS = {'txt', 'pdf', 'png', 'jpg', 'jpeg', 'gif'}

def allowed_file(filename):
    return '.' in filename and filename.rsplit('.', 1)[1].lower() in ALLOWED_EXTENSIONS

@app.post("/uploadfile/")
async def create_upload_file(file: UploadFile = File(...)):
    if not allowed_file(file.filename):
        raise HTTPException(status_code=400, detail="Invalid file extension. Allowed extensions are txt, pdf, png, jpg, jpeg, gif.")
    
    # 여기에 파일을 처리하는 코드를 추가하세요.
    # 예를 들어, 파일을 저장하거나 다른 작업을 수행할 수 있습니다.
    
    return {"filename": file.filename}

 

이 코드에서 allowed_file 함수는 파일 이름에서 확장자를 추출하고, 추출된 확장자가 허용된 확장자 목록에 있는지 확인합니다. 만약 허용되지 않은 확장자라면, HTTP 400 에러를 발생시켜 잘못된 요청을 처리합니다. 그렇지 않다면 파일을 처리하는 부분에 원하는 로직을 추가하시면 됩니다.

코드에서 ALLOWED_EXTENSIONS 변수에는 허용된 확장자 목록이 포함되어 있습니다. 필요에 따라 목록을 수정하여 원하는 확장자를 지정할 있습니다.

공유하기

facebook twitter kakaoTalk kakaostory naver band
loading