Cara Menyelesaikan Pembolehubah File2Store Kosong Apabila Memuat Naik Fail dengan FastAPI
Apabila cuba memuat naik fail melalui FastAPI, anda mungkin menghadapi pembolehubah file2store kosong walaupun mengikut garis panduan dokumentasi. Untuk menangani isu ini, beberapa langkah boleh diambil:
1. Pasang python-multipart:
Pastikan python-multipart dipasang, kerana ia perlu untuk menghuraikan fail yang dimuat naik sebagai data borang. Gunakan arahan berikut:
pip install python-multipart
2. Gunakan .file Attribute and def Endpoint:
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)
Nota: Untuk mengelakkan penyekatan pelayan, tentukan titik akhir dengan def dan bukannya async def dalam kes ini.
3. Bacaan/Penulisan Asynchronous dengan async def Endpoint:
Jika anda perlu menggunakan async def, gunakan kaedah tak segerak untuk membaca dan menulis kandungan, seperti yang ditunjukkan dalam jawapan ini.
4. Mengendalikan Potongan untuk Fail Besar:
Jika fail yang dimuat naik adalah lebih besar daripada RAM yang tersedia, muatkan fail ke dalam memori dalam ketulan dan proses data satu ketul pada satu masa, seperti yang ditunjukkan dalam contoh kod yang disediakan .
Memuat Naik Berbilang Fail:
Untuk memuat naik berbilang fail sebagai senarai dalam FastAPI, ikut garis panduan ini:
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(...)):
Ringkasnya, dengan memasang python-multipart, menggunakan atribut .file objek UploadFile, mengendalikan ketulan untuk fail besar dan mempertimbangkan operasi tak segerak jika perlu, anda boleh menyelesaikan isu pembolehubah file2store kosong dengan berkesan apabila memuat naik fail dengan FastAPI.
Atas ialah kandungan terperinci Mengapa pembolehubah file2store saya kosong apabila memuat naik fail dengan FastAPI?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!