使用c#将asp64字符串转换为asp.net中webservice中的图像

时间:2014-04-09 18:28:22

标签: asp.net

我正在使用此代码将来自android端的base64字符串转换为websevice的webmethod中的图像...但它给了我错误“GDI +中发生了一般错误”..

        Random r = new Random();
    int n = r.Next();
    string pic = n + ".jpg";
    byte[] imageBytes = Convert.FromBase64String(picpath);
    MemoryStream ms = new MemoryStream(imageBytes, 0, imageBytes.Length);
    ms.Write(imageBytes, 0, imageBytes.Length);
    System.Drawing.Image image = System.Drawing.Image.FromStream(ms, true);
    String picname = Server.MapPath("FarmImages") + "\\"+pic;
    image.Save(@picname);

有可能我在webmethod中使用它,因为它给了我错误。因为这在ASP页面中完美地工作...但是在Web服务中抛出错误..

1 个答案:

答案 0 :(得分:0)

哪一行发生错误?是image.Save()?您的服务进程是否有权写入要保存到的文件夹?

我不确定您的错误是什么,但看起来您正在编写两次内存流。这段代码似乎对我有用:

string imagestr = Convert.ToBase64String(File.ReadAllBytes(@"d:\temp\apng.png"));
byte[] imageBytes = Convert.FromBase64String(imagestr);
var stream = new MemoryStream(imageBytes);
stream.Position = 0;
var image = System.Drawing.Image.FromStream(stream);
image.Save(@"d:\temp\testout.png");