Ich versuche, this simple tutorial für Dateiübertragungen in Kolben zu folgen. So senden Sie Dateien, die ich das folgende HTML-Formular:Warum `request.files` ist leer?
<form action="" method="post" "enctype=multipart/form-data">
<table border="0" summary=""><tbody>
<tr>
<th>
<label for="image_file">Your image:</label>
</th>
<td>
<input type="file" id="image_file" name="image_file"></input>
</td>
</tr>
<tr>
<td>
</td>
<td>
<input type="submit" value="Submit" />
<a href="/test_func">Cancel</a>
</td>
</tr>
</tbody></table>
</form>
Nach der Formular-Vorlage Ich überprüfe den Inhalt der request
Variable auf folgende Weise:
print 'request.method', request.method
print 'request.args', request.args
print 'request.form', request.form
print 'request.files', request.files
Als Folge ich folgende erhalten:
request.method POST
request.args ImmutableMultiDict([])
request.form ImmutableMultiDict([('image_file', u'badge.gif')])
request.files ImmutableMultiDict([])
Was ich nicht verstehe ist, was request.files
ist leer. Nach dem oben genannten Tutorial muss ich file = request.files['file']
verwenden, um das Dateiobjekt zu erhalten (um es zu speichern).
Was mache ich falsch?
Wenn es sich wirklich um den von Ihnen verwendeten HTML-Code handelt, sollte das doppelte Anführungszeichen hinter 'enctype =' stehen. Im Moment ist die ganze Sache eine Zeichenkette, also schickt sie wahrscheinlich nicht die Datei, sondern nur den Namen aus dem Feld. – davidism