繁体   English   中英

在asp.net核心中保存来自结果转换base64字符串的图像

[英]Save image from result convert base64 string in asp.net core

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

[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}

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

您的代码中有一个错误, DefaultImagePath是一个目录,您必须为Save()方法指定一个文件名才能实际工作。

例如:

// Example 1:
pic.Save("full/path/to/your/image.jpg");

// Example 2:
pic.Save(DefaultImagePath + "/yourimage.jpg");

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

pic.Save(DefaultImagePath,ImageFormat.Png);

重写像

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM