Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>This is the code I used to post file stream to server. </p> <pre><code>private void LayoutRoot_Drop(object sender, DragEventArgs e) { _dropEventOccured = "Yes"; FileInfo[] files = e.Data.GetData(DataFormats.FileDrop) as FileInfo[]; MessageBox.Show(files.Length.ToString()); //MessageBox.Show("Dropped"); foreach (FileInfo fi in files) { _fileRead = "Yes"; _file = fi; FileStream fs = _file.OpenRead(); objByte = ReadFully(fs); fs.Close(); Post(); } } public static byte[] ReadFully(Stream input) { byte[] buffer = new byte[16 * 1024]; using (MemoryStream ms = new MemoryStream()) { int read; while ((read = input.Read(buffer, 0, buffer.Length)) &gt; 0) { ms.Write(buffer, 0, read); } return ms.ToArray(); } } private void Post() { HttpWebRequest request = null; //request = HttpWebRequest.Create("http://localhost/ajax.aspx") as HttpWebRequest; //request = HttpWebRequest.Create("http://localhost/ajax.aspx") as HttpWebRequest; request = HttpWebRequest.Create(string.Format("http://localhost/ajax.aspx?name={0}",_file.Name )) as HttpWebRequest; //request.ContentType = "application/x-www-form-urlencoded; charset=UTF-8"; request.ContentType = "multipart/form-data"; request.Method = "POST"; // Doesn't work with "GET" request.ContentLength = objByte.Length; if (request.Method == "GET") { request.BeginGetResponse(this.GetRequestStreamCallback, request); } else { MessageBox.Show("Posting..."); request.BeginGetRequestStream(this.GetRequestStreamCallback, request); } } private void GetRequestStreamCallback(IAsyncResult result) { System.Threading.Thread.Sleep(1000); HttpWebRequest request = (HttpWebRequest)result.AsyncState; using (Stream stream = request.EndGetRequestStream(result)) { stream.Write(objByte, 0, objByte.Length); stream.Close(); } request.BeginGetResponse(new AsyncCallback(GetResponseCallback), request); //HttpWebResponse response = (HttpWebResponse)result.EndGetResponse(asyncResult); } private void GetResponseCallback(IAsyncResult result) { try { HttpWebRequest request = (HttpWebRequest)result.AsyncState; while (!request.HaveResponse) { System.Threading.Thread.Sleep(1000); } HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(result); Console.WriteLine(response.StatusDescription); } catch (Exception ex) { } } </code></pre> <p>This is the code on server side:</p> <pre><code> protected void Page_Load(object sender, EventArgs e) { string saveTo = Server.MapPath("~/App_Data/") + Request.QueryString["name"]; // create a write stream FileStream writeStream = new FileStream(saveTo, FileMode.Create, FileAccess.Write); // write to the stream ReadWriteStream(Request.InputStream, writeStream); } private void ReadWriteStream(Stream readStream, Stream writeStream) { int Length = 256; Byte[] buffer = new Byte[Length]; int bytesRead = readStream.Read(buffer, 0, Length); // write the required bytes while (bytesRead &gt; 0) { writeStream.Write(buffer, 0, bytesRead); bytesRead = readStream.Read(buffer, 0, Length); } readStream.Close(); writeStream.Close(); } </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload