這篇文章主要介紹了C#遠程發送和接收數據流生成圖片的方法,涉及C#通過數據流傳輸圖片的相關技巧,具有一定參考借鑒價值,需要的朋友可以參考下
本文實例講述了C#遠程發送和接收數據流生成圖片的方法。分享給大家供大家參考。具體如下:
將圖片轉成數據流方式發送到遠程服務,在通過服務器后臺程序來接收數據流,再保存成圖片存放在需要的地方。
這種方式就類似上傳圖片功能一樣,希望能給一些大家另一種上傳圖片功能的方法。
發送數據流方法
- /// <summary>
- /// PostBinaryData
- /// </summary>
- /// <param name="url">要發送的 url 網址</param>
- /// <param name="bytes">要發送的數據流</param>
- /// <returns></returns>
- public string PostBinaryData(string url, byte[] bytes)
- {
- //下面是測試例子
- //string url = "http://www.test.com/test.ashx";
- //string img = HttpContext.Current.Server.MapPath("../images/test.jpg");
- //byte[] bytes = File.ReadAllBytes(img);
- HttpWebRequest wRequest = (HttpWebRequest)WebRequest.Create(url);
- wRequest.ContentType = "multipart/form-data";
- wRequest.ContentLength = bytes.Length;
- wRequest.Method = "POST";
- Stream stream = wRequest.GetRequestStream();
- stream.Write(bytes, 0, bytes.Length);
- stream.Close();
- HttpWebResponse wResponse = (HttpWebResponse)wRequest.GetResponse();
- StreamReader sReader = new StreamReader(wResponse.GetResponseStream(), System.Text.Encoding.UTF8);
- string str = sReader.ReadToEnd();
- sReader.Close();
- wResponse.Close();
- return str;
- }
接收數據流方法
- public void GetBinaryData()
- {
- string imgFile = DateTime.Now.ToString("yyyyMMddhhmmss") + ".jpg";
- string filePath = HttpContext.Current.Server.MapPath(imgFile);
- //方法一
- int lang = HttpContext.Current.Request.TotalBytes;
- byte[] bytes = HttpContext.Current.Request.BinaryRead(lang);
- string content = System.Text.Encoding.UTF8.GetString(bytes);
- FileStream fStream = new FileStream(filePath, FileMode.Create, FileAccess.Write);
- BinaryWriter bw = new BinaryWriter(fStream);
- bw.Write(bytes);
- bw.Close();
- fStream.Close();
- //方法二
- Bitmap img = new Bitmap(HttpContext.Current.Request.InputStream);
- img.Save(filePath);
- HttpContext.Current.Response.Write("ok");
- }
希望本文所述對大家的C#程序設計有所幫助。
新聞熱點
疑難解答