本文實例講述了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#程序設計有所幫助。
新聞熱點
疑難解答