使用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中文網其他相關文章!