我正在使用 django-avatars 来处理我网站的用户个人资料头像。我目前正在为该网站开发 native Android 应用程序,其中包括用户上传头像的功能。我通过以 base 64 编码的 get 参数传递图像数据。在我的 Django View 中,我有
data = base64.b64decode(request.POST['data'])
out = open("etc/test.jpeg", "wb")
out.write(data)
out.close()
解码图像。这工作正常(test.jpeg 是我想要的文件),但我无法将其绑定(bind)到 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 格式,(或者重写 save 方法以接受我的格式的最简单方法是什么)
最佳答案
request.FILES
元素在包装器中类似于文件。将文件数据粘贴在 StringIO
中,将其传递给 django.core.files.File
构造函数,然后将其传递给 save()
。
关于python - 通过base64上传文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10467623/