通过 base64 上传文件



我正在使用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()

最新更新