C# 如何在ASP.NET中使用web服务在pc文件夹中保存图像?错误:GDI+中的一般错误;

C# 如何在ASP.NET中使用web服务在pc文件夹中保存图像?错误:GDI+中的一般错误;,c#,asp.net,web-services,visual-studio-2012,C#,Asp.net,Web Services,Visual Studio 2012,我正在使用一个通过asp.net中的web服务保存图像的应用程序,但该应用程序引发异常,并显示以下消息: GDI中的一般错误+ 方法如下: public class GuardaImagenes : System.Web.Services.WebService { [WebMethod] public string GuardarImagen(string image,string imageTitle,string ext) { string Imag

我正在使用一个通过asp.net中的web服务保存图像的应用程序,但该应用程序引发异常,并显示以下消息:

GDI中的一般错误+

方法如下:

public class GuardaImagenes : System.Web.Services.WebService
{

    [WebMethod]
    public string GuardarImagen(string image,string imageTitle,string ext)
    {
        string ImageFolderPath = @"C:\Users\Andres\Pictures\ImagenesEvento\";
        Image convertedImage = ConvertToImage(image);
        try {
            convertedImage.Save(ImageFolderPath+imageTitle+ext,ImageFormat.Jpeg);
            return "true";
        }catch(Exception ex){
            return "false";
        }            
    }

    public Image ConvertToImage(string image) {
        // Convert Base64 String to byte[]
        byte[] imageBytes = Convert.FromBase64String(image);
        using (var ms = new MemoryStream(imageBytes, 0,imageBytes.Length))
        {
            // Convert byte[] to Image
            ms.Write(imageBytes, 0, imageBytes.Length);
            Image img = Image.FromStream(ms, true);
            return img;
        }
    }        
}
我以Base64字符串传递图像,并使用
ConvertToImage
方法将图像保存在计算机中的指定文件夹中

问题是,当我想要保存图像时,程序崩溃,无法处理它。
我已经读到使用
MemoryStream
更好,但是我不能正确地实现它。

由于内存流关闭而发生错误。你可以参考


我已经找到了这个问题的解决方案,只需要使用该类编写所有图像字节

文件

这是我的最终代码:

[WebMethod]
    public string SaveEventImage(string ImageByteArray, string ImageTitle)
    {
        try
        {
            byte[] bytes = Convert.FromBase64String(ImageByteArray);
            File.WriteAllBytes(EVTImagePath + ImageTitle + ".jpg",bytes);

            return "true";
        }
        catch
        {
            return "false";
        }
    }

您确定要创建的路径有效吗?另外,您没有处理
图像转换器图像。路径是正确的,我用另一个图像字符串测试了它,效果很好。哦,我不知道我必须处理它,谢谢@dai运行web服务的用户是否有权写入
C:\Users\Andres\Pictures\imagesenesevento\
?对于IIS来说,这似乎是一个非常奇怪的文件夹。@ScottChamberlain是的,它有写权限
[WebMethod]
    public string SaveEventImage(string ImageByteArray, string ImageTitle)
    {
        try
        {
            byte[] bytes = Convert.FromBase64String(ImageByteArray);
            File.WriteAllBytes(EVTImagePath + ImageTitle + ".jpg",bytes);

            return "true";
        }
        catch
        {
            return "false";
        }
    }