在Django Rest Framework中如何在单个POST数组中上传多张图片?

3
大家好,我在使用DRF获取单个帖子中的多张图片时遇到了问题。
我已经阅读了很多关于这个主题的内容,最常见的解决方法是对字符串进行base64编码,但这不是我想要的方法,因为它需要很多我们没有的资源。
另一个解决方法是DRF最常用的方法,即请求方法来解析内容类型中的头文件。http://www.django-rest-framework.org/api-guide/parsers/#how-the-parser-is-determined 但如果我没记错的话,这是使用multipart/form-data的方式来实现的。
真正我想要的是一种仅通过接收Json数组数据来实现的方法,这是通过使用内置于appcelerator中的移动应用程序来发送图像数组的用户。
如果有人能回答我至少是否可能,我将不胜感激,因为我找到的所有信息都只指向multipart/form-data。
顺便说一句,上传单个文件是可能的,但是上传多个文件不行,我已经用以下代码完成了上传单个文件: ukeys = request.FILES['fotos']
谢谢你的时间。
1个回答

6

我真正想要的是一种只接收Json数组数据的方法,这可以通过使用在appcelerator中构建的移动应用程序来完成,用户可以发送一个图像数组。

您需要检查底层请求并确切地了解实际上正在传输的内容。JSON不支持文件原语,因此“图像数组”可能实际上是一些具有某种编码的字符串数组。

对于多个值,请使用request.FILES.getlist('fotos')


1
当我接收到单个文件时,它会返回以Unicode编码的文件名:u'foto1.jpg'。但是当我使用getlist时,它只返回一个空数组:[]。更新:我尝试打印ukeys,这是ukeys = request.FILES.getlist('fotos')的变量,并且只给我一个空数组。但是如果我打印request.Files,它会给我以Unicode编码的值,我甚至可以使用For获取图像名称。现在我唯一的问题是应用程序如何将“图像数组”发送给我。 - Lord Maxus

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接