3

我正在使用 django-avatars 为我的网站处理用户个人资料头像。我目前正在为该网站开发一个原生 Android 应用程序,其中包括用户上传头像的功能。我通过以base 64编码的get参数传递图像数据。在我的Django视图中,我有

data = base64.b64decode(request.POST['data'])    
out = open("etc/test.jpeg", "wb")
out.write(data)
out.close()

解码图像。这工作正常(test.jpeg 是我想要的文件),但我无法将其绑定到 django-avatars。

翻翻django-avatars的源码,下面是用来新建头像的:

avatar = Avatar(
    user = request.user,
    primary = True,
)
image_file = request.FILES['avatar']
avatar.avatar.save(image_file.name, image_file)
avatar.save()

我的问题是,如何将我的文件数据转换为所需的 request.FILES 格式,(或者重写保存方法以接受我的格式的最简单方法是什么)

4

1 回答 1

5

request.FILES元素是包装器中的类似文件。将文件数据粘贴在 a 中StringIO,将其传递给django.core.files.File构造函数,然后将传递给save().

于 2012-05-06T03:01:15.063 回答