1
    Hello All,
      how i can upload file using jquery ajax i am trying to send this parameter to wcf rest service but its not working. 

here is the ajax code where i am passing file name and file object.


enter code here

  $.ajax({
            url: "http://localhost:1340/b/SaveProjectDocument/" + file.name + "/" + file,
                        data: null,
                        type: "POST",
                        contentType: "application/javascript",
                        dataType: "jsonp",
                        error: function () {
                            alert("Failed!");
                        },
                        success: function () {
                            $("#divLoadingEdit").hide();
                        }                  
                    });

これは、jquery とファイル オブジェクトからデータを文字列で取得し、ストリームに変換する wcf コードです。以下のコードを使用してファイルを保存できますが、バイトが正しく保存されていません。至急何が悪いのか教えてください。

[WebInvoke(Method = "POST",
                   ResponseFormat = WebMessageFormat.Json,
                  UriTemplate = "SaveProjectDocument/{filename}/{fileContents}")]
 public void SaveProjectDocument(string filename, string fileContents)
        {
            try
            {
//converting string into stream.
                //byte[] byteArray = Encoding.UTF8.GetBytes(fileContents);
                byte[] byteArray = Encoding.ASCII.GetBytes(fileContents);
                MemoryStream stream = new MemoryStream(byteArray);

//reading stream and assign new memory to byte array.
                byte[] buffer = new byte[stream.Length];               
                int count = 0;
                FileStream fileToupload = new FileStream(System.Web.HttpContext.Current.Server.MapPath("~/Files/") + filename, FileMode.Create, FileAccess.ReadWrite);
                while (count < stream.Length)
                {
                    buffer[count++] = Convert.ToByte(stream.ReadByte());
                }

                fileToupload.Write(buffer, 0, buffer.Length);
                fileToupload.Close();
                fileToupload.Dispose();


            }
            catch (Exception ex)
            {`enter code here`
                ///return 0;
            }
        }
4

0 に答える 0