首页 > 解决方案 > 从结果中保存图像在 asp.net 核心中转换 base64 字符串

问题描述

在我已经在 web 服务中创建方法之前,这是我的编码

[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public void Base64ToImage(string imagestr)
{
    DbAccessConnection conn = getActiveConnection();

    try
    {
        beginTransaction(conn);

        string DefaultImagePath = HttpContext.Current.Server.MapPath("~/c:/image");

        byte[] bytes = Convert.FromBase64String(imagestr);

        using (MemoryStream ms = new MemoryStream(bytes))
        {
            Image pic = Image.FromStream(ms);

            pic.Save(DefaultImagePath);
        }
            commitTransaction(conn);
    }
    catch (Exception ex)
    {
        rollbackTransaction(conn);

        Responder.writeResponse(false, ex.Message);             
    }
}

当我在我的网络服务中执行方法 Base64ToImage 时出现消息错误这是一个消息错误

{"isSuccess":false,"resultMessage":"A generic error occurred in GDI+.","data":null}

请帮助我,我该如何解决?

标签: c#.netweb-services

解决方案


可能你在保存的时候错过了图片的格式,文件名应该是完整的(不是文件夹路径)

pic.Save(DefaultImagePath,ImageFormat.Png);

重写喜欢

using (MemoryStream ms = new MemoryStream(bytes))
        {
            using (Image pic = Image.FromStream(ms))
            {
             pic.Save(DefaultImagePath+fileName.png, ImageFormat.Png);
            }
        }

推荐阅读