1. 程式人生 > >[asp.net] 利用WebClient上傳圖片到遠程服務

[asp.net] 利用WebClient上傳圖片到遠程服務

Enctype button server png add memory .ashx serve 上傳

一、客戶端

1.頁面

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

2.後臺

  1. System.Web.HttpFileCollection oFiles = System.Web.HttpContext.Current.Request.Files;
  2. ].FileName;
  3. );
  4. ].ContentLength];
  5. System.IO.Stream fs = (System.IO.Stream)oFiles[].InputStream;
  6. fs.Read(b, , oFiles[].ContentLength);
  7. string postData = "data=" + HttpUtility.UrlEncode(Convert.ToBase64String(b));
  8. var webclient = new WebClient();
  9. webclient.Headers.Add("Content-Type", "application/x-www-form-urlencoded");
  10. byte[] byteArray = Encoding.UTF8.GetBytes(postData);
  11. //byte[] buffer = webclient.UploadData("http://localhost/datapush/DataPush.ashx", "POST", byteArray);//ashx
  12. byte[] buffer = webclient.UploadData("http://localhost/datapush/WebServiceDataPush.asmx/DataPush", "POST", byteArray);//asmx
  13. var msg = Encoding.UTF8.GetString(buffer);
  14. Response.Write(msg);

二、服務端

  1. string msg = "";
  2. byte[] filedata = Convert.FromBase64String(context.Request["data"]);
  3. )
  4. {
  5. msg= "{\"code\":\"上傳的是空文件\"}";
  6. }
  7. )
  8. {
  9. msg = "{\"code\":\"圖片大小不能超過1M\"}";
  10. }
  11. ].ToString() + filedata[].ToString();
  12. ")
  13. {
  14. fileextension = "gif";
  15. }
  16. ")
  17. {
  18. fileextension = "jpg";
  19. }
  20. ")
  21. {
  22. fileextension = "png";
  23. }
  24. ")
  25. {
  26. fileextension = "bmp";
  27. }
  28. ")
  29. {
  30. fileextension = "tif";
  31. }
  32. else
  33. {
  34. msg = "{\"code\":\"上傳的文件不是圖片\"}";
  35. }
  36. try
  37. {
  38. //保存圖片
  39. string filename = Guid.NewGuid().ToString("D") + "." + fileextension;
  40. System.IO.MemoryStream ms = new System.IO.MemoryStream(filedata);
  41. System.IO.FileStream fs = new System.IO.FileStream(context.Server.MapPath("~/") + "/采集圖片/" + filename, System.IO.FileMode.Create);
  42. ms.WriteTo(fs);
  43. ms.Close();
  44. fs.Close();
  45. fs = null;
  46. ms = null;
  47. msg = "{\"code\":\"上傳圖片成功\"}";
  48. }
  49. catch (Exception exe)
  50. {
  51. msg = "{\"code\":\"" + exe.Message + "\"}";
  52. }

[asp.net] 利用WebClient上傳圖片到遠程服務