在Django中使用相同的输入名称上传多个文件

即时通讯在上传具有相同输入名称的多个文件时遇到麻烦:

<input type=file name="file">

<input type=file name="file">

<input type=file name="file">

在Django一侧

print request.FILES :

<MultiValueDict: {u'file': [

<TemporaryUploadedFile: captcha_bg.jpg (image/jpeg)>,

<TemporaryUploadedFile: 001_using_git_with_django.mov (video/quicktime)>,

<TemporaryUploadedFile: ejabberd-ust.odt (application/vnd.oasis.opendocument.text)>

]}>

因此所有三个文件都在单个request.FILES [‘file’]对象下。如何处理从此处上传的每个文件?

回答:

for f in request.FILES.getlist('file'):

# do something with the file f...

编辑:我知道这是一个旧答案,但是我刚才遇到了这个答案,并且已经将答案编辑为实际上是正确的。以前建议你可以直接进行迭代request.FILES['file']。要访问MultiValueDict中的所有项目,请使用.getlist('file')。使用just ['file']只会返回它为该键找到的最后一个数据值。

以上是 在Django中使用相同的输入名称上传多个文件 的全部内容, 来源链接: utcz.com/qa/418939.html

回到顶部