C#实现HTTP请求文件下载,GET、POST请求的数据流接收
参考的地址:http://www.jb51.net/article/57068.htm
- public string CopyFileByUrl(string url)
- {
- string name = url.Substring(url.LastIndexOf('/') + );//获取名字
- string fileFolder = UploadConfigContext.UploadPath;
- string filePath = Path.Combine(fileFolder, name);//存放地址就是本地的upload下的同名的文件
- if (!Directory.Exists(fileFolder))
- Directory.CreateDirectory(fileFolder);
- string returnPath = GetSimplePath(filePath);//需要返回的路径
- if (File.Exists(filePath))
- {//如果已经存在,那么就不需要拷贝了,如果没有,那么就进行拷贝
- return returnPath;
- }
- HttpWebRequest request = HttpWebRequest.Create(url) as HttpWebRequest;
- request.Method = "GET";
- request.ProtocolVersion = new Version(, );
- HttpWebResponse response = request.GetResponse() as HttpWebResponse;
- if (response.StatusCode == HttpStatusCode.NotFound)
- {
- return string.Empty;//找不到则直接返回null
- }
- // 转换为byte类型
- System.IO.Stream stream = response.GetResponseStream();
- //创建本地文件写入流
- Stream fs = new FileStream(filePath, FileMode.Create);
- byte[] bArr = new byte[];
- int size = stream.Read(bArr, , (int)bArr.Length);
- while (size > )
- {
- fs.Write(bArr, , size);
- size = stream.Read(bArr, , (int)bArr.Length);
- }
- fs.Close();
- stream.Close();
- return returnPath;
- }
Copy代码
- public string GetSimplePath(string path)
- {
- //E:\Upload\cms\day_150813\1.jpg
- path = path.Replace(@"\", "/");
- int pos = path.IndexOf("Upload");
- if (pos != -1)
- {
- pos = pos - 1;//拿到前面那个/,这样为绝对路径,直接保存在整个项目下的upload文件夹下
- return path.Substring(pos, path.Length - pos);
- }
- return "";
- }
C#实现HTTP请求文件下载,GET、POST请求的数据流接收的更多相关文章
- 原生js实现文件下载并设置请求头header
原生js实现文件下载并设置请求头header const token="自行定义";//如果有 /** * 向指定路径发送下载请求 * @param{String} url 请求路 ...
- IIS请求筛选模块被配置为拒绝超过请求内容长度的请求
HTTP错误404.13 - Not Found 请求筛选模块被配置为拒绝超过请求内容长度的请求,原因是Web服务器上的请求筛选被配置为拒绝该请求,因为内容长度超过配置的值(IIS 7 默认文件上传大 ...
- http请求get与post请求的几种实现
[说明]:非原创,前两种post请求需要依赖Apache开源框架来实现:最后一种get/post请求则不需要依赖第三方框架 普通表单调用(post请求) /** * 普通表单调用 * 根据参数url, ...
- Android okHttp网络请求之Get/Post请求
前言: 之前项目中一直使用的Xutils开源框架,从xutils 2.1.5版本使用到最近的xutils 3.0,使用起来也是蛮方便的,只不过最近想着完善一下app中使用的开源框架,由于Xutils里 ...
- 普通B/S架构模式同步请求与AJAX异步请求区别(个人理解)
在上次面试的时候有被问到过AJAX同步与异步之间的概念问题,之前没有涉及到异步与同步的知识,所以特意脑补了一下,不是很全面... 同步请求流程:提交请求(POST/GET表单相似的提交操作)---服务 ...
- x-requested-with 请求头 区分ajax请求还是普通请求(转)
在服务器端判断request来自Ajax请求(异步)还是传统请求(同步): 两种请求在请求的Header不同,Ajax 异步请求比传统的同步请求多了一个头参数 1.传统同步请求参数 accept t ...
- HTTP错误404.13 - Not Found 请求筛选模块被配置为拒绝超过请求内容长度的请求
http://www.cnblogs.com/JKqingxinfeng/archive/2012/10/29/2744663.html HTTP错误404.13 - Not Found 请求筛选模块 ...
- zzy:请求静态资源和请求动态资源, src再次请求服务器资源
[总结可以发起请求的阶段:请求动态资源:通过web.xml匹配action然后,自定义Servlet处理该action1)form表单提交请求的时候,用action设定,该页面发起请求的Servlet ...
- HTTP协议---HTTP请求中的常用请求字段和HTTP的响应状态码及响应头
http://blog.csdn.net/qxs965266509/article/details/8082810 用于HTTP请求中的常用请求头字段 Accept:用于高速服务器,客户机支持的数据类 ...
随机推荐
- 概念:CountDownLatch、CyclicBarrier、Semaphore,以及guava的RateLimiter
概念 CountDownLatch:一个门闩,作用是将某个线程关在门外,等门里的人分赃完毕(计数为0)的时候,才会打开门,让外面的那个线程执行. CyclicBarrier:直译的话,就是循环障碍.貌 ...
- VIM中 文件的打开与保存
用 :edit 命令打开一个文件 :edit + {filename} 就可以打开一个文件到缓冲区中, 并且可以加文件路经的: 在路经中, %表示当前文件的完整路经, 用:h 可以 ...
- 第三百七十四节,Django+Xadmin打造上线标准的在线教育平台—创建课程app,在models.py文件生成4张表,课程表、课程章节表、课程视频表、课程资源表
第三百七十四节,Django+Xadmin打造上线标准的在线教育平台—创建课程app,在models.py文件生成4张表,课程表.课程章节表.课程视频表.课程资源表 创建名称为app_courses的 ...
- 第三百六十五节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)的基本查询
第三百六十五节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)的基本查询 1.elasticsearch(搜索引擎)的查询 elasticsearch是功能 ...
- Spring JDBC SimpleJdbcCall类示例
org.springframework.jdbc.core.SimpleJdbcCall类是表示对存储过程或存储函数的调用的多线程,可重用的对象. 它提供元数据处理以简化访问基本存储过程/函数所需的代 ...
- e780. 设置JList中的已选项
List selection events are fired when the following methods are used to change the set of selected it ...
- [2013.7.5新鲜出炉] Ubuntu12.04下载Android4.0.1源码全过程----------------折腾两天,终于下好,附若干问题解决
本文转至 http://blog.csdn.net/yanzi1225627/article/details/9255457 下载源码这一步折腾了我整整两天,期间遇到很多问题,哎,记录于此,希望日后再 ...
- 关于WSDL文件
endpoint Name是在Service节点中指定的. 而非是binding.binding节点只是绑定soapaction.
- js scrollIntoViewIfNeeded
根据 MDN的描述,Element.scrollIntoView()方法让当前的元素滚动到浏览器窗口的可视区域内. 而Element.scrollIntoViewIfNeeded()方法也是用来将不在 ...
- eclipse 访问 hive1.2.1
参考链接1.http://www.iteblog.com/archives/846 操作实际参考代码:http://sunhs.sinaapp.com/?p=343 配置eclipse 搞1天, 不管 ...