Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana untuk Menyelesaikan Isu Muat Naik Fail Kosong dalam FastAPI?

Bagaimana untuk Menyelesaikan Isu Muat Naik Fail Kosong dalam FastAPI?

DDD
Lepaskan: 2024-12-20 14:48:10
asal
769 orang telah melayarinya

How to Solve Empty File Upload Issues in FastAPI?

Bagaimana hendak Muat Naik Fail menggunakan FastAPI?

Masalah:
Apabila menggunakan FastAPI untuk memuat naik fail mengikut kepada dokumentasi rasmi, pembolehubah file2store kekal kosong.

Punca:

  • Pastikan python-multipart dipasang.
  • Apabila menggunakan titik akhir def, anda boleh menggunakan fail . atribut untuk mengakses fail Python sebenar dan memanggil kaedahnya secara serentak.
  • Apabila menggunakan async def titik akhir, pertimbangkan operasi fail tak segerak.
  • Laraskan saiz ketulan dengan sewajarnya jika fail terlalu besar untuk ingatan.

Penyelesaian:

app.py:

from fastapi import File, UploadFile

@app.post("/create_file")
def create_file(file: UploadFile = File(...)):
    try:
        contents = file.file.read()
        # store contents to the database
    except Exception:
        return {"message": "Error uploading file"}
    finally:
        file.file.close()
    return {"message": f"Successfully uploaded {file.filename}"}
Salin selepas log masuk

Alternatif untuk Async Titik tamat:

@app.post("/create_file")
async def create_file(file: UploadFile = File(...)):
    try:
        contents = await file.read()
        # store contents to the database
    except Exception:
        return {"message": "Error uploading file"}
    finally:
        await file.close()
    return {"message": f"Successfully uploaded {file.filename}"}
Salin selepas log masuk

Memuat naik Berbilang Fail:

from fastapi import File, UploadFile
from typing import List

@app.post("/upload")
def upload(files: List[UploadFile] = File(...)):
    for file in files:
        try:
            contents = file.file.read()
            # store contents to the database
        except Exception:
            return {"message": "Error uploading file(s)"}
        finally:
            file.file.close()
    return {"message": f"Successfully uploaded {[file.filename for file in files]}"}
Salin selepas log masuk

Permintaan daripada Skrip Python:

requests.post(url="SERVER_URL/create_file", files={"file": (f.name, f, "multipart/form-data")})
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Isu Muat Naik Fail Kosong dalam FastAPI?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan