django - 如何将图像数组发布到视图
Posted
技术标签:
【中文标题】django - 如何将图像数组发布到视图【英文标题】:django - how to post array of images to views 【发布时间】:2013-03-15 04:26:44 【问题描述】:从昨天开始我就一直在这个问题上。我有一个表单,用户可以在其中选择更多图像文件并提交。现在我无法在我的views.py 中捕捉到那些POSTED
图像文件。
我的html:
<input type="file" name="images[]" />
<input type="file" name="images[]" />
在我的views.py中我这样做了:
images = request.POST.getlist('images[]')
但是一旦我print images
,我得到[]
,空数组。我究竟做错了什么?我想获取所有选定的图像文件并将它们保存到我认为的 db 中。
编辑: 这是我的html:
<form action="/save/" method="post" enctype="multipart/form-data">
<input type="file" name="images[]" />
<input type="file" name="images[]" />
<input type="submit" value="send" />
</form>
这是我的观点.py
fotos = request.POST.getlist('images[]')
for i in range(len(fotos)):
print fotos[i]
这里打印的是[]
,而不是每个图像的名称。为什么这个数组是空的?
感谢您的帮助。
【问题讨论】:
您能否从您的 html 和 views.py 中发布更多代码以在视图中显示表单和帖子的集合? @marksweb,是的,请看我的编辑 【参考方案1】:当 Django 处理文件上传时,它与常规的 POST 字段略有不同。数据放在request.FILES
中,需要在那里访问。 The documentation about handling file uploads is a great starting point.
【讨论】:
谢谢,你能告诉我如何在我的views.py中获取这些文件 @doniyor:请按照 Liv 的建议将您的网址指向 docs.djangoproject.com/en/dev/topics/http/file-uploads。 @brunodesthuilliers,我没有看到任何与我的问题相关的内容。例如:如何处理视图中发布的图像数组images[]
方案是特定于 php 的,在其他地方没有任何特殊含义(换句话说,Python/Django 不会将其解释为数组)。因此,如果您想上传多张图片,您必须为您的表单创建具有唯一名称的单独文件字段,例如。 “图像1”和“图像2”。然后,您可以通过访问request.FILES['image1']
和request.FILES['image2']
来操作这些文件中的数据。
那个文档页面有你需要的一切,那么你只需要像往常一样在模板中显示表单; docs.djangoproject.com/en/dev/topics/forms/…以上是关于django - 如何将图像数组发布到视图的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Ajax 以数组格式将多个图像从 MVC 视图发送到控制器?