[asp.net] 利用WebClient上传图片到远程服务

时间:2022-05-24 06:27:09

一、客户端

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&num;利用WebClient和WebRequest获取网页源代码的比较

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

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

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

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

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

  4. c&num;利用WebClient和WebRequest获取网页源代码

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

  5. &lbrack;ASP&period;NET&rsqb;利用itextsharp将GridView汇出PDF档

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

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

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

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

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

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

    摘要: 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. 【从零开始学BPM,Day4】业务集成

    [课程主题] 主题:5天,一起从零开始学习BPM [课程形式] 1.为期5天的短任务学习 2.每天观看一个视频,视频学习时间*安排. [第四天课程] 1.课程概要 Step 1 软件下载:H3 BP ...

  2. c&num;大数加法

    在C#中,我们经常需要表示整数.但是,c#的基本数据类型中,最大的long也只能表示-9,223,372,036,854,775,808 到 9,223,372,036,854,775,807之间的数 ...

  3. 慕课网-安卓工程师初养成-1-5 使用Eclipse开发Java程序

    来源: http://www.imooc.com/video/1412 eclipse --- IDE 集成开发环境(IDE)是一类软件 将程序开发环境和程序调试环境集合在一起,提高开发效率 其他ID ...

  4. ZOJ 2563&Tab;Long Dominoes(状压DP)

    给定一个m*n的方格子,要求用3*1的骨牌去覆盖,骨牌可以用横放或者竖放,问最终有多少种放置方式,将其铺满. 分析:由于最多30行,每行最多9列,所以可以按行来dp,设计每行的状态从而进行转移,考虑每 ...

  5. mybatis --- 以接口的方式进行编程

    );  我们来学习下接口方式的编程. 接口类IBookDao.java package com.mybatis.dao; import com.mybatis.model.Book; public i ...

  6. vue面试题总结

    1.vue双向绑定的实现原理2.js的继承和原型链3.es6语法箭头函数和普通函数的区别 普通函数的this总是指向它的直接调用者. 在严格模式下,没找到直接调用者,则函数中的this是undefin ...

  7. &lpar;办公&rpar;SpringBoot和swagger2的整合&period;

    因为开发项目的接口需要给app,小程序测试,所以用swagger. 1.pom.xml: <dependency><!--添加Swagger依赖 --> <groupId ...

  8. Invalid character found in the request target&period;

    背景:springboot项目内置tomcat9.0 调用的接口中有{}就会报错 解决办法: 新的tomcat新版本增加了一个新特性,就是严格按照 RFC 3986规范进行访问解析,而 RFC 398 ...

  9. 线程池线程数与&lpar;CPU密集型任务和I&sol;O密集型任务&rpar;的关系

    近期看了一些JVM和并发编程的专栏,结合自身理解,来做一个关于(线程池线程数与(CPU密集型任务和I/O密集型任务)的关系)的总结: 1.任务类型举例: 1.1: CPU密集型: 例如,一般我们系统的 ...

  10. 大数据:Map终结和Spill文件合并

    当Mapper没有数据输入,mapper.run中的while循环会调用context.nextKeyValue就返回false,于是便返回到runNewMapper中,在这里程序会关闭输入通道和输出 ...