2

画像をピクセル形式で送信するためのWebサービスを作成しました。正常に動作していますが、パラメータに大量のデータを指定すると、完全なデータは取得されません。限られたデータや小さな画像を取ります。このパラメータ制限はありますか?またはパラメータで大きなデータを与えるにはどうすればよいですか?

これが私のコードです

    [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 に変換する前に bytearray を圧縮して画像を縮小するか、より圧縮された画像タイプ (ej: bmp から png) に変換してみてください。

よろしく

于 2012-07-09T11:31:19.600 に答える