【问题标题】:django - how to post array of images to viewsdjango - 如何将图像数组发布到视图
【发布时间】: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,是的,请看我的编辑

标签: python html django http post


【解决方案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/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-06
  • 2020-05-21
  • 2011-05-26
  • 1970-01-01
  • 1970-01-01
  • 2015-09-03
相关资源
最近更新 更多