Mar*_*ark 6 django file-upload
当我向Django提交一个多文件上传表单时
<input type="file" name="files" multiple />
Run Code Online (Sandbox Code Playgroud)
我得到了一个明智的结果request.FILES
:
(MultiValueDict: {u'files': [(InMemoryUploadedFile: 0202.jpg (image/jpeg)), (InMemoryUploadedFile: 0203.jpg (image/jpeg))]})
Run Code Online (Sandbox Code Playgroud)
但后来我的困惑开始了.我以为request.FILES['files']
会包含几个文件(似乎是一个列表),但它只显示
0203.jpg
Run Code Online (Sandbox Code Playgroud)
没有任何InMemoryUploadedFile
部分,更重要的是:只有最后一个文件!
只通过那个文件循环request.FILES
,.iteritems()
显然request.FILES['files']
是难以理解的; 以下代码实际上冻结了控制台并使其无休止地发出哔哔声:
for v in request.FILES['files']:
print v
print type(v)
Run Code Online (Sandbox Code Playgroud)
那么......这是否正常?我究竟做错了什么?
因为我开始认为这可能是一个错误:我在Windows 7上使用Django 1.4.2和Python 2.7.
Mar*_*ark 10
事实证明答案是在Stack Overflow上,在这里略有不同(客户端,至少)问题:在django中使用相同的输入名称上传多个文件
事实证明这request.FILES['files']
是错误的,应该是request.FILES.getlist('file')
.
为什么会出现这种情况对我来说完全是个谜.如果有人可以解释,我很乐意切换接受的答案.
归档时间: |
|
查看次数: |
2067 次 |
最近记录: |