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 - 如何将图像数组发布到视图的主要内容,如果未能解决你的问题,请参考以下文章

如何将数组中的非静态图像加载到 Swift 中的集合视图中

如何使用 Ajax 以数组格式将多个图像从 MVC 视图发送到控制器?

如何在 Django 视图中显示 PIL 图像对象?

如何将两个图像附加到 ios 中的 mfmailcomposer 视图控制器

如何在ios的表格视图中绑定数组数据?

通过 JSON 将图像数组加载到 tableview 图像视图中