WebClient上传图片到远程服务的代码示例


本文摘自PHP中文网,作者Y2J,侵删。

这篇文章主要介绍了ASP.NET中利用WebClient上传图片到远程服务的方法,包括客户端和服务端,代码附有注释,需要的的朋友参考下吧

一、客户端

1.页面

1

2

3

4

5

6

<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>

2.后台

1

2

3

4

5

6

7

8

9

10

11

12

13

14

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);

二、服务端

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

string msg = "";

   byte[] filedata = Convert.FromBase64String(context.Request["data"]);

   if (filedata.Length == 0)

   {

    msg= "{\"code\":\"上传的是空文件\"}";

   }

   if (filedata.Length > 1048576)

   {

    msg = "{\"code\":\"图片大小不能超过1M\"}";

   }

   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 = "{\"code\":\"上传的文件不是图片\"}";

   }

   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 = "{\"code\":\"上传图片成功\"}";

   }

   catch (Exception exe)

   {

    msg = "{\"code\":\"" + exe.Message + "\"}";

   }

【相关推荐】

1. ASP免费视频教程

2. ASP教程

3. 李炎恢ASP基础视频教程

以上就是WebClient上传图片到远程服务的代码示例的详细内容!

相关阅读 >>

理解asp.net中webform的生命周期_实用技巧

分享两种asp.net网站发布时的遇到的问题及解决方案

asp.net core异常和错误处理(8)_实用技巧

asp.net mvc实现404跳转的代码实例

分享asp.net学习笔记(8)webpages 帮助器

asp.net怎么使用js文件

.net实现邮件发送的代码详解

asp.net中session失效是怎么解决的?

c#中list的用法

用signair和push.js完成消息推送代码详解

更多相关阅读请进入《asp.net》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...