2012-07-09 78 views
2

我写了一个web服务,以像素形式发送图像。它工作正常,但是当我们在参数中提供大量数据时,它不会获取完整数据。它需要有限的数据或小图像。 是这个参数限制吗?或者我如何给参数中的大数据?使用.net webservice发送图像像素

这里是我的代码

[WebMethod] 
    public XmlDocument testuploadimage(string image) 
    { 

     XmlDocument login = new XmlDocument(); 
     XmlDeclaration dec = login.CreateXmlDeclaration("1.0", null, null); 
     login.AppendChild(dec); 
     XmlElement root = login.CreateElement("CreateUser"); 
     login.AppendChild(root); 

     try 
     { 

       string actFolder = Server.MapPath("~/Images/"); 
       string s = image.Replace(" ", string.Empty); 


       string imgname = DateTime.UtcNow.ToString().Replace(" ", "").Replace("AM", "").Replace("PM", "").Replace("/", "").Replace("-", "").Replace(":", "") + ".png"; 
       //  string imgname = DateTime.UtcNow.ToString("yyyyMMddHHmm") + ".png"; 

       byte[] imageBytes = Convert.FromBase64String(image.Replace(" ","+")); 
       MemoryStream ms = new MemoryStream(imageBytes, 0, imageBytes.Length); 
       // MemoryStream ms = new MemoryStream(imageBytes); 
       // Convert byte[] to Image 
       // ms.Write(imageBytes, 0, imageBytes.Length); 

       Image image2 = Image.FromStream(ms); 
       image2.Save(actFolder + imgname); 


       XmlElement root1 = login.CreateElement("uploaded"); 
       root1.InnerText = "true"; 
       root.AppendChild(root1); 
       XmlElement root2 = login.CreateElement("path"); 
       root2.InnerText = "http://Myserver/HeritageWebServices/Images/" + imgname; 
       root.AppendChild(root2); 

       return login; 

      } 
      catch (Exception ex) 
      { 
       ErrLogMgr.LogErrorMessage(string.Format("{0}{1}", "testuploadimage() for the image :", 
                 image), "testUploadimage Inputs", 
                 ERRORSOURCE.CSASERVICE); 
       XmlDocument cd = new XmlDocument(); 
       cd.LoadXml("<Message>" + ex + "</Message>"); 



       return cd; 

回答

0

两件事情

试图改变在web.config文件中的maxRequestLength。我发现你使用base64发送图像,你可以尝试压缩bytearray,然后将其转换为base64,以减少图像或尝试转换为更加压缩的图像类型(ej:bmp到png) 。

关于

+0

嗨,谢谢4回复..我改变了我的maxRequestLength web.config。 但仍然参数不采取整个数据..它只需要有限的像素量。 – user1340516 2012-07-09 11:45:51

+0

你有检查字符串的长度吗? – Clot 2012-07-09 12:49:33

+0

是的,它是43268.但它不是我在参数中给出的全长。 – user1340516 2012-07-09 12:59:01