首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ToBase64String()方法应该与所有图像类型一起工作吗?

ToBase64String()方法应该与所有图像类型一起工作吗?
EN

Stack Overflow用户
提问于 2014-03-04 14:17:35
回答 1查看 319关注 0票数 1

我使用转换方法ToBase64String已经有一段时间了,到目前为止没有任何问题。我基本上是将上传的图像转换为字节数组,然后使用ToBase64String()方法结合标识的内容MIME类型为页面上的图像标记的源分配。以下是我的方法:

代码语言:javascript
运行
复制
    protected string RenderImage(byte[] image, string contentType)
    {
        try
        {
            if (profilePhoto != null)
            {
                byte[] byteArray = image;
                string imageBase64 = Convert.ToBase64String(byteArray);
                string imageSrc = string.Format("data:"+ contentType +";base64,{0}", imageBase64);
                return imageSrc;                    
            }
        }
        catch (Exception ex)
        {
            // Catch Exception
        }
        return null;
    }

我在MVC框架中工作,所以在一个成功的ajax函数调用中,我将返回的值指定为图像标记的来源。代码片段:

代码语言:javascript
运行
复制
success: function (result) {
     var newImg = document.getElementById("updatedImage");
     newImg.src = result;
}

这很好,但是最近我注意到,image/png和image/ using类型没有成功地使用这种方法进行渲染。我已经比较了这些图像的属性和那些没有问题的属性,并且我找不到任何显著的差异来解释这个问题。

我还注意到,这个问题在JPG文件中并不普遍,如果我只为png文件指定一个直接路径作为源文件,该文件就会在图像标记中适当呈现。

我似乎有一个技巧,遇到这样的怪事,但我希望有人可以提供一些投入,为什么这可能会发生。

我认为,只要字节数组的大小在合理的范围内,图像标记应该能够处理Convert.ToBase64String()方法提供的任何字符串。而且这些PNG文件还是比较小的。尺寸约49 of,尺寸232x232。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-04 14:50:07

你是怎么得到图像字符串的?

这听起来像是一个GET大小限制问题,服务器在其中默默地截断响应。

为了进一步解决这个问题..。我将查看通过ajax获得的base64字符串,并将其与方法中的实际图像toBase64进行比较。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22174441

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档