[英]convert image from base64 to image and save in database in django
我正在嘗試導出一個字符串base64,表示從canvas html5中獲取的圖像,這是javascript中的代碼:
var canvas1 = $("#canvas1")[0];
var ctx1 = canvas1.getContext('2d');
dataURL1 = canvas1.toDataURL();
Whit ajax我把圖片發送到服務器:
$.ajax({
type: "POST",
url: "/regiter_respuesta_agilidad/",
data:{
'imagen1': dataURL1,
}
});
在django的views.py中,我使用base64.b64decode將字符串導出到image:
imagen1 = request.POST['imagen1']
image_data = base64.b64decode(imagen1)
imagene = ContentFile(image_data, 'imagen1.png')
answer = Answer(imagen=imagene)
在models.py我有:
class Answer(models.Model):
imagen = models.ImageField(upload_to=url)
問題是圖像保存時,文件imagen1.png已損壞,我無法打開它,有人可以幫我解決這個問題嗎?還是有其他方法可以做到這一點? 非常感謝你。
我猜你需要剝離data:
關閉canvas.toDataURL();
返回的數據URI canvas.toDataURL();
。
快速谷歌搜索發現一些代碼用於解析python https://gist.github.com/zacharyvoase/5538178中的數據uris和另一個: dataurl.py
而不是這一行: image_data = base64.b64decode(imagen1)
使用此行: image_data = base64.b64decode(imagen1[22:] + b'=' * (-len(imagen1[22:]) % 4))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.