[PYTHON] Mit FastAPI können nicht mehrere Bilder aus dem Formular hochgeladen werden

Überblick

Dies ist eine Erinnerung, als ich versuchte, mehrere Bilder vom normalen HTML-Tag "<input type =" file "...>" auf den Fastapi-Backend-Server hochzuladen, anstatt js zu verwenden.

Problemcode

index.html


 <html>
        <head>
            <title>Face Swap App</title>
        </head>
        <body>
            <h1>Look ma! HTML!</h1>
            <form enctype="multipart/form-data" method="post" action="swap">
                <input type="file" id="source" name="file"></input>
                <input type="file" id="target" name="file"></input>
                <input type="submit" value="Face Swap">
            </form>
        </body>
    </html>

main.py



@app.post("/swap", response_class=HTMLResponse)
async def create_swapped_image(files: List[UploadFile] = File(...)):
    print(files)
    return """
    <html>
        <head>
            <title>Face Swap App</title>
        </head>
        <body>
            <h1>Success!</h1>
        </body>
    </html>
    """

Lösung

Zusammenfassend scheint es, dass der Name des "input" -Tags mit dem Argument der Fastapi-Endpunktfunktion übereinstimmen muss! Mit anderen Worten, die Eingabe von index.html

index.html



<input type="file" id="source" name="files">
<input type="file" id="target" name="files">

Es wurde durch den Wechsel zu gelöst. Ich habe nicht alle gelesen, aber ich erinnere mich nicht daran, dies in das offizielle Dokument geschrieben zu haben, deshalb dachte ich, es wäre schwer zu verstehen. Es tut mir leid, wenn ich es geschrieben habe ...

Recommended Posts

Mit FastAPI können nicht mehrere Bilder aus dem Formular hochgeladen werden
Veröffentlichen Sie mehrere Twitter-Bilder mit Python
Animieren Sie mehrere Standbilder mit Python
Laden Sie Bilder mit Falcon hoch und laden Sie sie herunter
Konvertieren Sie Bilder aus dem PIL-Format, die mit Django aus dem Formular gelesen wurden, in das base64-Format
Laden Sie Bilder mit Python auf Google Drive hoch
Speichern Sie mehrere Modelle in einem Formular mit Django
Ich möchte mehrere Bilder mit matplotlib anzeigen.
Massen-Download-Bilder von einer bestimmten URL mit Python
Laden Sie Bilder mit tkinter mit GUI auf S3 hoch
[Memo] Abonnieren Sie Nachrichten aus mehreren Themen mit ROS
Konvertieren Sie Bilder aus dem FlyCapture SDK in ein Formular, das mit openCV verwendet werden kann
Mit matplotlib erstellte Bilder werden von dvi nach pdf verschoben
Massen-Download-Bilder von einer bestimmten Site-URL mit Python
Entfernen Sie Überschriften aus CSV-Dateien mit mehreren Formaten mit Python