2012-07-09 53 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