2

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

这是我的代码

    [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;
4

1 回答 1

0

两件事情

尝试更改 web.config 文件上的 maxRequestLength。

我看到您正在使用 base64 发送图像,您可以在将其转换为 base64 之前尝试压缩字节数组,以减少图像或尝试转换为更压缩的图像类型(ej:bmp 到 png)。

问候

于 2012-07-09T11:31:19.600 回答