Frage

Ich bin auf der Suche nach einem Weg, um eine Datei zu s3 hochladen. Ich bin mit django. Ich bin derzeit Amazons Python-Bibliothek für mit dem folgenden Code des Hochladen auf:

Ausblick:

def submitpicture(request):
    fuser = request.session["login"]

    copied_data = request.POST.copy()
    copied_data.update(request.FILES)
    content_type = copied_data['file'].get('content-type')
    ffile = copied_data['file']['content']
    key = '%s-%s' % (fuser, ''.join(copied_data['file']['filename'].split(' ')))
    site_s3.save_s3_data(key, ffile, content_type)

Vorlage:

<form action="/submitpicture/" method="POST">
    <input type="file" id="file" name="file" />
    <input type="submit" value="submit" />
</form>

Allerdings, wenn ich tatsächlich versuchen, es zu laufen bekomme ich folgende Fehlermeldung:

"Key 'file' not found in <QueryDict: {}>"
#MultiValueDictKeyError

ich wirklich nicht sehen, was ich falsch mache. Kann jemand mich in die richtige Richtung?

Edit: Gerade falls jemand fragt, ich plane eine Validierung auf Hinzufügen, nachdem ich die tatsächlichen Upload-Arbeits bekommen.

War es hilfreich?

Lösung

Sie das enctype Attribut auf das FORM-Element zur Verfügung stellen müssen (ich habe, bevor sie von diesem gebissen worden). Zum Beispiel sollte Ihr Formtag wie folgt aussehen:

<form action="/submitpicture/" method="POST" enctype="multipart/form-data" >

Ohne die enctype, können Sie sich mit einem leeren request.FILES finden werden.

Andere Tipps

Statt dies manuell zu tun, ich einen Blick auf dem Speicher-Backend David Larlet für Django geschrieben dauern würde, django-Speicher

enctype = "multipart / form-data" Hinzufügen scheint wie etwas, das in dem "Datei-Uploads" Abschnitt der django docs ( http://docs.djangoproject.com/en/dev/topics/http/file-uploads/ ). Gedanken?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top