我正在使用django头像来处理我网站的用户配置文件头像。 我目前正在为该网站开发一个原生的Android应用程序,其中包括用户上传头像的功能。 我通过以 base 64 编码的 get 参数传递图像数据。 在我的 Django 视图中,我有
data = base64.b64decode(request.POST['data'])
out = open("etc/test.jpeg", "wb")
out.write(data)
out.close()
以解码图像。 这工作正常(测试.jpeg是我想要的文件),但我无法将其绑定到 django 头像中。
查看 django 头像的来源,以下内容用于创建新的头像:
avatar = Avatar(
user = request.user,
primary = True,
)
image_file = request.FILES['avatar']
avatar.avatar.save(image_file.name, image_file)
avatar.save()
我的问题是,如何将文件数据转换为所需的请求。FILES 格式,(或者重写 save 方法以接受我的格式的最简单方法是什么)
request.FILES
元素在包装器中是类似文件的。将文件数据粘贴到StringIO
中,将其传递给django.core.files.File
构造函数,然后将其传递给save()
。