首頁 > 後端開發 > Python教學 > 為什麼使用 FastAPI 上傳檔案時我的 file2store 變數為空?

為什麼使用 FastAPI 上傳檔案時我的 file2store 變數為空?

Linda Hamilton
發布: 2024-12-14 02:52:11
原創
675 人瀏覽過

Why is my file2store variable empty when uploading files with FastAPI?

使用FastAPI 上傳檔案時如何解析空的File2Store 變數

嘗試透過FastAPI 上傳檔案時,您可能會遇到空的file2store變數儘管遵循文檔的指南。要解決此問題,可以採取以下步驟:

1.安裝python-multipart:

確保安裝了python-multipart,因為將上傳的檔案解析為表單資料是必需的。使用以下命令:

pip install python-multipart
登入後複製

2.使用.file 屬性和def 端點:

from fastapi import File, UploadFile

@app.post("/upload")
def upload(file: UploadFile = File(...)):
    # Get actual Python file and read/write contents
    contents = file.file.read()
    with open(file.filename, 'wb') as f:
        f.write(contents)
登入後複製

注意:為了防止阻塞伺服器,請在這種情況下使用def 而不是async def 定義端點。

3.使用async def 端點進行非同步讀取/寫入:

如果您需要使用async def,請使用非同步方法來讀取和寫入內容,如本答案所示。

4.處理大檔案的資料區塊:

如果上傳的檔案大於可用RAM,則將檔案分塊載入記憶體中,並一次處理一個資料區塊,如提供的程式碼範例所示.

上傳多個檔案:

要在FastAPI 中以列表形式上傳多個文件,遵循以下準則:

from fastapi import File, UploadFile
from typing import List

# For a single file, use:
# @app.post("/upload")
def upload(file: List[UploadFile] = File(...)):

# For a list of files, use:
# @app.post("/upload")
async def upload_multiple(files: List[UploadFile] = File(...)):
登入後複製

總之,透過安裝python-multipart,使用UploadFile 物件的 .file 屬性,處理大檔案的區塊,並在必要時考慮非同步操作,可以有效解決使用 FastAPI 上傳檔案時出現空白 file2store 變數問題。

以上是為什麼使用 FastAPI 上傳檔案時我的 file2store 變數為空?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板