簡體   English   中英

將圖像從base64轉換為圖像並保存在django的數據庫中

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM