在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