一、客户端

1.页面

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>

2.后台

             System.Web.HttpFileCollection oFiles = System.Web.HttpContext.Current.Request.Files;
             ].FileName;
             );
             ].ContentLength];
             System.IO.Stream fs = (System.IO.Stream)oFiles[].InputStream;
             fs.Read(b, , oFiles[].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"]);
             )
             {
                 msg= "{\"code\":\"上传的是空文件\"}";
             }
             )
             {
                 msg = "{\"code\":\"图片大小不能超过1M\"}";
             }
             ].ToString() + filedata[].ToString();
             ")
             {
                 fileextension = "gif";
             }
             ")
             {
                 fileextension = "jpg";
             }
             ")
             {
                 fileextension = "png";
             }
             ")
             {
                 fileextension = "bmp";
             }
             ")
             {
                 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 + "\"}";
             }
 

[asp.net] 利用WebClient上传图片到远程服务的更多相关文章

  1. c#利用WebClient和WebRequest获取网页源代码的比较

    前几天举例分析了用asp+xmlhttp获取网页源代码的方法,但c#中一般是可以利用WebClient类和WebRequest类获取网页源代码.下面分别说明这两种方法的实现. WebClient类获取 ...

  2. SpringCloud03 Ribbon知识点、 Feign知识点、利用RestTemplate+Ribbon调用远程服务提供的资源、利用feign调用远程服务提供的资源、熔断

    1 远程服务资源的调用 1.1 古老的套路 在微服务出现之前,所有的远程服务资源必须通过RestTemplate或者HttpClient进行:但是这两者仅仅实现了远程服务资源的调用,并未提供负载均衡实 ...

  3. winform客户端利用webClient实现与Web服务端的数据传输

    由于项目需要,最近研究了下WebClient的数据传输.关于WebClient介绍网上有很多详细介绍,大概就是利用WebClient可以实现对Internet资源的访问.无外乎客户端发送请求,服务端处 ...

  4. c#利用WebClient和WebRequest获取网页源代码

    C#中一般是可以利用WebClient类和WebRequest类获取网页源代码.下面分别说明这两种方法的实现.   WebClient类获取网页源代码   WebClient类   WebClient ...

  5. [ASP.NET]利用itextsharp将GridView汇出PDF档

    原文 [ASP.NET]利用itextsharp将GridView汇出PDF档 最近在讨论区看到有人说itextsharp可以把网页变成PDF 小弟就去抓一下itextsharp来玩玩,先教大家最实用 ...

  6. 利用WebClient上传参数及文件流到远程ashx服务

    原文 利用WebClient上传参数及文件流到远程ashx服务 1 思路: WebClient.UploadFile()方法可以上传文件:UploadData()方法可以上传数据参数:如何合二为一既上 ...

  7. asp.net利用存储过程分页代码

    -最通用的分页存储过程 -- 获取指定页的数据 CREATE PROCEDURE Pagination ), -- 表名 ) = '*', -- 需要返回的列 )='', -- 排序的字段名 , -- ...

  8. 看代码网备份|利用WebClient|eKing.CmdDownLoadDbBakOper|实现定时拷贝数据库备份文件到文件服务器

    摘要: 1.有两台服务器 (1)看代码网(记为A):内网IP:10.186.73.30 (2)文件服务器(记为B):内网IP:10.135.87.157 2.在A架设一个网站,端口8088(防火强设置 ...

  9. 一个简单的利用 WebClient 异步下载的示例(三)

    继续上一篇 一个简单的利用 WebClient 异步下载的示例(二) 后,继续优化它. 1. 直接贴代码了: DownloadEntry: public class DownloadEntry { p ...

随机推荐

  1. leetcode 第43题 Wildcard Matching

    题目:(这题好难.题目意思类似于第十题,只是这里的*就是可以匹配任意长度串,也就是第十题的‘.*’)'?' Matches any single character. '*' Matches any ...

  2. C# 利用SMTP异步发送邮件

    C#实现收发邮件功能需要用到两个命名空间  System.Net; 和 System.Net.Mail; SmtpClient client = new SmtpClient("smtp.g ...

  3. idea执行go

    因为经常在不同的地方调代码,每次都调整环境很麻烦,于是在犯懒的时候发现了更直接简便的办法,关于idea集成go环境的,不需要按部就班的部署. 首先下代码,比如https://github.com/sa ...

  4. 图片轮播插件Nivo Slider

    推荐:图片轮播插件Nivo Slider         因为项目需要一款切换样式多一些的轮播插件,不经意找到了NivoSlider,非常好用,比bootstrap要好用,而且样式丰富.值得注意的是, ...

  5. C#控件怎样获取,和失去焦点的处理

    publicForm1() { InitializeComponent(); textBox1.Enter+=newEventHandler(textBox1_Enter);//获得焦点事件 text ...

  6. SAX解析xml浅析

    SAX解析XML文件采用事件驱动的方式进行,也就是说,SAX是逐行扫描文件,遇到符合条件的设定条件后就会触发特定的事件,回调你写好的事件处理程序.使用SAX的优势在于其解析速度较快,占用内存较少(相对 ...

  7. web前端学习笔记

    web前端学习笔记(CSS盒子的定位) 相对定位 使用相对定位的盒子的位置常以标准流的排版方式为基础,然后使盒子相对于它在原本的标准位置偏移指定的距离.相对定位的盒子仍在标准流中,它后面的盒子仍以标准 ...

  8. LIS 最长递增子序列问题

    一,    最长递增子序列问题的描述 设L=<a1,a2,…,an>是n个不同的实数的序列,L的递增子序列是这样一个子序列Lin=<aK1,ak2,…,akm>,其中k1< ...

  9. 如何去除AJAX收到数据中包含的html页面数据

    问题: 如下代码所示,我用AJAX收到来自url: 'kzkj_check.jsp',返回的数据msg,总是包含页面的html数据,可是我只想要我返回的数据“false”, $.ajax({ url: ...

  10. Cracking the Coding Interview(Trees and Graphs)

    Cracking the Coding Interview(Trees and Graphs) 树和图的训练平时相对很少,还是要加强训练一些树和图的基础算法.自己对树节点的设计应该不是很合理,多多少少 ...