在mvc项目中存储数据URL(base64)的最佳方法是什么?

时间:2015-02-26 13:33:04

标签: angularjs asp.net-mvc

我将图像作为dataurl保存到数据库中(在列中存储为字符串),但这种方式不是获取/存储数据的有效方法。经过Google搜索后,我发现了一些解决方案。同样,将数据URL拆分为逗号和base64解码数据。然后将二进制数据写入文件,但我不知道如何将数据保存到文件中。

**Base64**  ==>  data:image/gif;base64,R0lGODlhyAD3APcAAAAAAAoKChISEhsbGyAcHSMjIyomJysrKzMvMDMzMzk2Nzw8PEJCQklFRkpHSExMTFJSUltbW2NjY2hmZmpnaGtra3BtbXNzc3x8fOJHIOJLJeNOKOVRJuhWJ+lZJ+NQK+xdKONVMuRYNeRdOu5iJe5iKPBlKfBoLeV

另一个解决方案是使用ajax,我没有理解如何从存储的图像中获取数据网址的部分代码:

stage1.toDataURL({
    callback: function(dataUrl) {
        dataUrl = dataUrl.replace('data:image/png;base64,', '');
        $.ajax({
            type: 'POST',
            url: "../../Home/UploadImage",
            data: '{ "imageData" : "' + dataUrl + '" }',
            contentType: 'application/json; charset=utf-8',
            dataType: 'json',
            success: function(data) {
               // alert('Image saved successfully !');
                window.location("Home/ExportPng");
            }
        });
    }
});

这段代码我如何在aspx文件和angularjs中使用dataurl。

var c = document.getElementById(myCanvasDoc);
var ctx = c.getContext("2d");
var img = document.getElementById(imagedoc);
var imgwidth = img.offsetWidth;
var imgheight = img.offsetHeight;
ctx.drawImage(img, 0, 0, imgwidth, imgheight);
$scope.image.src= c.toDataURL(); 



<img data-ng-src="{{image.src}}" width="500" height="300" />
<img id="imagedoc" data-flow-img="$flow.files[0]" width="500" height="300" />     
<canvas id="myCanvasDoc" width="500" height="300" />

希望我可以解释我的问题和我需要的东西。如果您有任何想法,请帮我找到解决方案。

1 个答案:

答案 0 :(得分:1)

当您说数据库不是获取/存储数据的有效方式时,我不太清楚您的意思,但是我会尽力给您一些建议。< / p>

如果您仅使用没有后端的AngularJS创建前端,我建议您使用localstorage,最好是使用Cookie后备,我建议使用Angular Local Storage

如果你有一个后端,我建议你使用一些描述的数据库,不管是Postgres还是更像文档的MongoDB我在标签中注意到它会说你&#39;重新使用ASP.Net所以我建议你看看this detailed tutorial on building a RESTful API in ASP.Net

希望这有帮助,如果您有任何问题,请随时提出。