jquery - 显示大型 Base64 图像 MVC 4 DOTNET

标签 jquery asp.net .net asp.net-mvc asp.net-mvc-4

首先,我在 SSMS 上以二进制形式存储了一些图像,这些图像以字节大小超过 10K 的字节格式存储。

到目前为止,我已经尝试了下面列出的几种技术。

请注意,我读到渲染时的 base64 图像通常用于 64 x 64 实例的小型基本类型图像。

问题不是将图像转换为base64,而是找到一种方法,使用 Jquery 从 DB 逐个请求图像,然后添加图像 base64 到 DOM 上的图像属性。

//注意:请求的图像从 api 端转换为 Base64,但图像二进制文件可能很大,因此当检查说文件大小太大时,Base64 总是在浏览器 img src 属性上返回较大的结果。

请不要指出我说它用于小图像正在寻找一种解决方案,有人使它可以处理较大的图像。

调整大小不是一个选项,因为它会破坏文档分辨率以及查看文档的方式。不过,如果有解决方案,您可以指出我吗?我尝试调整图像大小只是为了让您知道,但如果拉伸(stretch),图像在演示时会显得很高兴,这将是显而易见的。

记住我要求更好的方法,或者我是否可以使用带有大型 Base64 的 Jquery 在 dom 上加载多个图像。

我还知道我可以使用链接显示图像列表,然后允许用户单击该链接来查看该特定图像。

我正在使用 Dotnet 4.5 MVC

我尝试过的代码:

    $(function () {
    $(".my-image-tag").each(function () {
        var img = $(this);
        var apiUrl = "www.xxxx.com";
        console.log(
            $.ajax({
                type: 'GET',
                url: apiUrl ,
                data: { 'Id': img.attr('data-id') },
            }).done(function (data) {
                console.log(data.Image);
                img.attr('src', 'data:image/jpg;base64,' + data.Image);
            }).error(function (jqXHR, textStatus, errorThrown) {
                ///Need a Error Logger Page
            })
        );
    });
});

最佳答案

正如 Rup 在评论中建议的那样,您最好的选择可能是在 API 中创建一个提供图像服务的方法。

<img src="/controller/getimage/imagename">

然后在你的 Controller 中类似...

public ActionResult getimage(string imagename)
{
   var data = //call database to get image data
   var file = //convert data into File "image/jpeg" or whatever file type you use
   return file;
}

关于jquery - 显示大型 Base64 图像 MVC 4 DOTNET,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50105207/

相关文章:

c# - 2 个同名进程。我如何只结束其中一个?

.net - NUnit,如何在运行测试套件之前和之后执行源代码

javascript - Snap.js移动面板插件添加 `destroy`方法

javascript - Ajax - 所有请求均已完成/完成

c# - 好的 asp.net (C#) 应用程序?

jquery - 在 jQuery 中发出 parent()

javascript - 获取 ASP.Net ArrayList 中的 JavaScript 数组作为函数的参数

javascript - 如何维护使用 jquery 生成的受益人的顺序?

javascript - jquery:ajax 未在文档 getready 中触发

Javascript If语句运行一些html代码