【FastAPI 學習 九】圖片文件上傳


圖片文件上傳

接收上傳圖片字節流數據,本地保存

這個就沒什么難度了,照着官網來就行了。

有一點要主注意,文檔看仔細。文檔地址

安裝依賴

pip install python-multipart

代碼

import os
import shutil
from pathlib import Path
from typing import Union, Any
from tempfile import NamedTemporaryFile
from fastapi import APIRouter, Depends, File, UploadFile

from api.common.logger import logger
from core.config import settings
from api.utils import response_code

router = APIRouter()


@router.post("/upload/file/", summary="上傳圖片")
async def upload_image(
        file: UploadFile = File(...)
):
    logger.info(f"用戶{token_data.sub}->上傳文件:{file.filename}")

    # 本地存儲臨時方案,一般生產都是使用第三方雲存儲OSS(如七牛雲, 阿里雲)
    save_dir = f"{settings.BASE_DIR}/assets"
    if not os.path.exists(save_dir):
        os.mkdir(save_dir)

    try:
        suffix = Path(file.filename).suffix

        with NamedTemporaryFile(delete=False, suffix=suffix, dir=save_dir) as tmp:
            shutil.copyfileobj(file.file, tmp)
            tmp_file_name = Path(tmp.name).name
    finally:
        file.file.close()

    return response_code.resp_200(data={"image": f"http://127.0.0.1:8010/assets/{tmp_file_name}"})

總結

后端上傳代碼很簡單,那么配套前端Vue如何上傳?可以關注我個人網站,同時更新Vue對接FastAPI博客

代碼GitHub地址

見個人網站 https://www.charmcode.cn/article/2020-07-29_fastapi_img_upload

參考


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM