8

Django に複数ファイルのアップロード フォームを送信すると

<input type="file" name="files" multiple />

私は賢明な結果を得るrequest.FILES:

(MultiValueDict: {u'files': [(InMemoryUploadedFile: 0202.jpg (image/jpeg)), (InMemoryUploadedFile: 0203.jpg (image/jpeg))]})

しかし、それから私の混乱が始まります。いくつかのファイルが含まれていると思いrequest.FILES['files']ました(リストのように見えます)が、表示されるのは

0203.jpg

パーツはありませんInMemoryUploadedFile。さらに重要なのは、最後のファイルのみです。

request.FILESwithループ.iteritems()もその 1 つのファイルのみを処理し、request.FILES['files']明確に統合可能です。以下のコードは、実際にコンソールをフリーズさせ、ビープ音を際限なく鳴らしました。

for v in request.FILES['files']:
    print v
    print type(v)

それで...これは正常ですか?私は何を間違っていますか?

これはバグかもしれないと考え始めているので、Windows 7でPython 2.7でDjango 1.4.2を使用しています。

4

1 に答える 1

13

結局、答えは Stack Overflow にあったことがわかりました。ここでは、わずかに異なる (少なくともクライアント側) 問題:複数のファイルが django で同じ入力名を使用してアップロードされます

それは間違っていたことが判明し、そうあるrequest.FILES['files']べきでしたrequest.FILES.getlist('file')

なぜこれが事実なのかは、私にとって完全な謎です。誰かが説明で答えることができれば、受け入れられた答えを喜んで切り替えます.

于 2012-12-02T02:44:03.967 に答える