如何在ASP.NET中利用WebClient上傳圖片到遠程服務?

ADVERTISEMENT

如何在ASP.NET中利用WebClient上傳圖片到遠程服務?

一、客戶端

1.頁面


 <form id="Form1" method="post" runat="server" enctype="multipart/form-data">
 <input id="MyFile" type="file" runat="server" />
 <br />
 <br />
 <asp:Button ID="Button1" runat="server" Text="上載文件" OnClick="Button1_Click"></asp:Button>
 </form>
ADVERTISEMENT

2.後台


 System.Web.HttpFileCollection oFiles = System.Web.HttpContext.Current.Request.Files;
 string FilePath = oFiles[0].FileName;
 string FileName = FilePath.Substring(FilePath.LastIndexOf("\") + 1);
 byte[] b = new byte[oFiles[0].ContentLength];
 System.IO.Stream fs = (System.IO.Stream)oFiles[0].InputStream;
 fs.Read(b, 0, oFiles[0].ContentLength);
 string postData = "data=" + HttpUtility.UrlEncode(Convert.ToBase64String(b));
 var webclient = new WebClient();
 webclient.Headers.Add("Content-Type", "application/x-www-form-urlencoded");
 byte[] byteArray = Encoding.UTF8.GetBytes(postData);
 //byte[] buffer = webclient.UploadData("http://localhost/datapush/DataPush.ashx", "POST", byteArray);//ashx
 byte[] buffer = webclient.UploadData("http://localhost/datapush/WebServiceDataPush.asmx/DataPush", "POST", byteArray);//asmx
 var msg = Encoding.UTF8.GetString(buffer);
 Response.Write(msg);

二、服務端


 string msg = "";
 byte[] filedata = Convert.FromBase64String(context.Request["data"]);
 if (filedata.Length == 0)
 {
 msg= "";
 }
 if (filedata.Length > 1048576)
 {
 msg = "";
 }
 string fileextension = filedata[0].ToString() + filedata[1].ToString();
 if (fileextension == "7173")
 {
 fileextension = "gif";
 }
 else if (fileextension == "255216")
 {
 fileextension = "jpg";
 }
 else if (fileextension == "13780")
 {
 fileextension = "png";
 }
 else if (fileextension == "6677")
 {
 fileextension = "bmp";
 }
 else if (fileextension == "7373")
 {
 fileextension = "tif";
 }
 else
 {
 msg = "";
 }
 try
 {
 //保存圖片
 string filename = Guid.NewGuid().ToString("D") + "." + fileextension;
 System.IO.MemoryStream ms = new System.IO.MemoryStream(filedata);
 System.IO.FileStream fs = new System.IO.FileStream(context.Server.MapPath("~/") + "/采集圖片/" + filename, System.IO.FileMode.Create);
 ms.WriteTo(fs);
 ms.Close();
 fs.Close();
 fs = null;
 ms = null;
 msg = "";
 }
 catch (Exception exe)
 {
 msg = "{\"code\":\"" + exe.Message + "\"}";
 }

以上所述是小編給大家介紹的ASP.NET中利用WebClient上傳圖片到遠程服務的方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回複大家的。在此也非常感謝大家對路飯網站的支持!

ADVERTISEMENT

本文地址:
ADVERTISEMENT
ADVERTISEMENT