Heim > Backend-Entwicklung > Python-Tutorial > Wie löse ich Probleme beim Hochladen leerer Dateien in FastAPI?

Wie löse ich Probleme beim Hochladen leerer Dateien in FastAPI?

DDD
Freigeben: 2024-12-20 14:48:10
Original
769 Leute haben es durchsucht

How to Solve Empty File Upload Issues in FastAPI?

Wie lade ich eine Datei mit FastAPI hoch?

Problem:
Bei Verwendung von FastAPI zum Hochladen einer Datei entsprechend Laut offizieller Dokumentation bleibt die Variable file2store erhalten leer.

Ursache:

  • Stellen Sie sicher, dass python-multipart installiert ist.
  • Bei Verwendung von Def-Endpunkten können Sie die .file verwenden Attribut, um auf die eigentliche Python-Datei zuzugreifen und ihre Methoden synchron aufzurufen.
  • Bedenken Sie bei der Verwendung asynchroner Def-Endpunkte asynchrone Dateivorgänge.
  • Passen Sie die Blockgröße entsprechend an, wenn Dateien zu groß für den Speicher sind.

Lösung:

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}"}
Nach dem Login kopieren

Alternative für Async Endpunkte:

@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}"}
Nach dem Login kopieren

Mehrere Dateien hochladen:

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]}"}
Nach dem Login kopieren

Anfrage vom Python-Skript:

requests.post(url="SERVER_URL/create_file", files={"file": (f.name, f, "multipart/form-data")})
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie löse ich Probleme beim Hochladen leerer Dateien in FastAPI?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage