【问题标题】:Javascript (MVC) load image (byte array) from databaseJavascript(MVC)从数据库加载图像(字节数组)
【发布时间】:2015-08-06 07:19:36
【问题描述】:

Stack 上有很多关于这个问题的答案,但没有一个对我有用...

我需要从一个字节数组中设置 javascript 中图像标签的“src”属性,该字节数组是通过对我的控制器的 ajax 调用检索的。我必须做这个客户端,因为我正在动态构建一些 html(在下面的简单示例中没有显示)

这是视图:

<div>
<button onclick=" loadFromDb(); ">CLICK ME</button>
<img id="imgFromModel" src="data:image/png;base64,@Convert.ToBase64String(Model.Image)" alt="" />

<img id="imgFromScript" src="#" alt=""/>
</div>

这是脚本:

function loadFromDb() {
    $.ajax({
        url: "/Home/LoadFromDatabase",
        async: true,
        type: "POST",
        dataType: "json",
        contentType: "application/json; charset=utf-8",
        success: function (response) {
            var base64String = btoa(response.Image);
            $("#imgFromScript").attr("src", "data:image/png;base64," +  base64String);
        }
    });
}

图像在“imgFromModel”标签中正确加载,但不是来自脚本(“imgFromScript”标签)。有人可以告诉我如何将一个字节数组从控制器方法加载(设置“src”属性)到图像标签中吗?

提前感谢您的帮助

【问题讨论】:

    标签: javascript ajax image bytearray src


    【解决方案1】:

    在玩了很多之后,睡个好觉和一点运气,这就是解决方案。

    我需要在我的模型中添加一个字符串属性,将其命名为“ImageBytesAsString”,并在我的 ajax 响应中将 src 设置为该属性。这是代码..

    型号:

    public byte[] Image { get; set; }
    public string ImageBytesAsString { get; set; }
    

    控制器:

    var user = context.Users.FirstOrDefault();
    user.ImageBytesAsString = Convert.ToBase64String(user.Image);
    

    JAVASCRIPT:

        $.ajax({
        url: "/Home/LoadFromDatabase",
        async: true,
        type: "POST",
        dataType: "json",
        contentType: "application/json; charset=utf-8",
        success: function (response) {
            $("#imgFromScript").attr("src", "data:image/png;base64," + response.ImageBytesAsString);
        }
    });
    

    查看:

    <img id="imgFromScript" src="#" alt=""/>
    

    我希望这对某人有所帮助。

    【讨论】:

    • 我也尝试过这种方式,但在生产中,图像的加载速度非常慢。关于如何实施此解决方案的任何想法?
    猜你喜欢
    • 2013-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多