上传JavaScript生成的图像到Django
Uploading JavaScript generated image to Django
我有一个在客户端生成的图像,我想通过一个表单传输到服务器。例如,假设我有一个注册表单,其中的配置文件图像是由JavaScript自动生成的,我想将该图像传输到django。
当用户点击提交按钮时,将图像二进制数据传输到服务器的最佳方法是什么?我应该使用什么表单字段?
谢谢!
我自己找到了答案,这里是解决方案,以防有人需要它:
在客户端,这就是如何从画布获取图像并将其设置为表单字段(隐藏的字符字段):
var dataURL = document.getElementById('canvas_id').toDataURL("image/png");
document.getElementById('id_hidden_image_field').value = dataURL;
在django中:
添加一个名为'hidden_image_field'的隐藏字段到表单,该字段将用于传递数据。这个字段是一个简单的CharField。您可以添加max_length限制,以确保图像在一个合理的大小(注意:不是尺寸,而是实际大小)。
解析图像数据:
import re import base64 dataUrlPattern = re.compile('data:image/(png|jpeg);base64,(.*)$') ImageData = request.POST.get('hidden_image_field') ImageData = dataUrlPattern.match(ImageData).group(2) # If none or len 0, means illegal image data if (ImageData == None or len(ImageData) == 0: # PRINT ERROR MESSAGE HERE pass # Decode the 64 bit string into 32 bit ImageData = base64.b64decode(ImageData)
,现在ImageData包含二进制数据,你可以简单地保存到一个文件,它应该工作。
相关文章:
- 如何使用url加载程序在webpack中导入多个图像
- 如何将淡出图像添加到我的Django页面
- 为什么我不能在 Django Web 应用程序中使用客户端相机拍摄图像快照
- Django应用程序中的滚动图像
- 用jQuery替换Django中的图像
- 如何在Django中使用Dropzone为多个图像字段上传多个图像
- Django 在客户端上传之前调整图像大小
- 将图像从 base64 转换为图像并保存在 Django 的数据库中
- Django REST,上传的图像具有空值
- 使用 django 将图像从 html 表单下载到本地主机
- Django + skelJS / 静态文件问题 / 对 CSS 中图像的引用
- Django:除主页模板外,静态文件图像URL路径中断
- 通过JavaScript在Django中显示图像
- 使用Django提供随机图像
- 通过Ajax不断地从Django中获取图像
- 上传JavaScript生成的图像到Django
- Django - Javascript -禁用图像刷新缓存
- 如何将多个图像上传到服务器到Django应用程序中
- 如何在django-ckeditor上传图像时发送请求中的额外数据
- 如何使用Django后端在CKEDITOR中上传图像