2017-10-19 1 views
0

Ich habe Probleme mit Batch-Bild-Upload mit Flasche. Die request.files.getall() gibt eine leere Liste zurück, obwohl ich Dateien auswähle und hochlade.Flasche request.files.getall() gibt leere Liste zurück

Meine Form sieht wie folgt aus:

@route('/upload', method='POST') 
def newGallery(): 
    name = request.forms.get('name') 
    pictures = request.files.getall('gallery') 

    for picture in pictures: 
     print(picture.filename) 

    return template('new.html') 

Dank für die Hilfe:

<form action="/upload" method="POST"> 
    <div class="form-group"> 
     <label for="gallery">Select images:</label> 
     <input id="gallery" type="file" name="gallery" accept=".gif,.jpg,.jpeg,.png" multiple> 
    </div> 
    <button type="submit" class="btn btn-default">Submit</button> 
</form> 

Mein Controller sieht wie folgt aus.

+1

zeigen Sie Ihre 'new.html' –

+0

hier ist es: https://pastebin.com/3pw86VK1 – Sudet

Antwort

1

forms.getall(*)

arbeitete

* .py Datei

@bottle.get('/go') 
def go(): 
    return bottle.template('new.html') 

@bottle.post('/go') 
def goo(): 
    name = bottle.request.forms.get('email') 
    pictures = bottle.request.forms.getall('gallery') 
    for picture in pictures: 
     print(picture) 
    return bottle.template(' hi {{name}}, {{picture}} ', name=name, picture=picture) 

Auch geändert form Tag in new.html zu

<form method="post"> 
+0

Es funktioniert. Vielen Dank. Irgendeine Idee warum request.files ('*') nicht funktioniert hat? – Sudet

+0

Und eigentlich ist das Problem jetzt, dass ich die Dateinamen habe, aber ich habe nicht die Dateien, die ich auf den Server hochladen möchte. Wie speichere ich die Datei jetzt? Ich würde sagen, dass "picture.save (Pfad, überschreiben = True)" nicht funktioniert, da Bild nur String in dieser Lösung ist. Danke für Hilfe. – Sudet

Verwandte Themen