一、客户端

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. - C#编程大幅提高OUTLOOK的邮件搜索能力!

    原文:[原创] - C#编程大幅提高OUTLOOK的邮件搜索能力! 使用OUTLOOK, 你有没有遇到过上图的问题? 多达18419封邮件! 太多了, 每次想找一个邮件都非常耗时, 想办法解决这个问题 ...

  2. JS获取字符串实际长度

    JS中默认中文字符长度和其它字符长度计算方法是一样的,但某些情况下我们需要获取中文字符串的实际长度,代码如下: function strLength(str) { var realLength = 0 ...

  3. [Dev Blog] KCV插件 —— Provissy Tools 。

    承蒙各位支持! 正式版已推出,请前往http://tieba.baidu.com/p/3398574166 或者前往:http://provissy.com/?p=7 请不要在这里回复,我无法保证回复 ...

  4. SSIS如何引用外部DLL

    原文:SSIS如何引用外部DLL 当SSIS引用外部的DLL时,外部的DLL须满足以下条件: 1. DLL是强命名. 2. 加入到GAC (C:\WINDOWS\assembly),直接把DLL拉进目 ...

  5. ASP.NET MVC Model元数据

    ASP.NET MVC Model元数据(三) 前言 在上篇中我们大概的讲解了Model元数据的生成过程,并没有对Model元数据本身和详细的生成过程有所描述,本篇将会对详细的生成过程进行讲解,并且会 ...

  6. js理解

    js-提前声明和new操作符理解   1.提前声明:声明变量后,js会把声明部分提前到作用域前面. var a=1; function aheadOfStatement(){ alert(a); va ...

  7. WCF入门教程(图文)VS2012

    WCF入门教程(图文)VS2012 上一遍到现在已经有一段时间了,先向关注本文的各位“挨踢”同仁们道歉了.小生自认为一个ITer如果想要做的更好,就需要将自己的所学.所用积极分享出来,接收大家的指导和 ...

  8. Java基础之集合:概览

    Java Basic->Collections->Overview 先抛一个问题,用一个类似树形的结构,介绍下 Java 的集合类数据结构:有哪些,从简单到复杂,有怎么样的继承关系. 下面 ...

  9. JAVA学习:内部类

    一.内部类的访问规则: 1.内部类可以直接访问外部类中的成员,包括私有.格式为外部类名.this 2.外部类要访问内部类,必须建立内部类对象. 代码: class Outer { private in ...

  10. .net通用底层搭建

    .net通用底层搭建 之前写过几篇,有朋友说看不懂,有朋友说写的有点乱,自己看了下,的确是需要很认真的看才能看懂整套思路. 于是写下了这篇. 1.这个底层,使用的是ado.net,微软企业库 2.实体 ...