下载远程(第三方服务器)文件、图片,保存到本地(服务器)的方法、保存抓取远程文件、图片 将图片的二进制字节字符串在HTML页面以图片形式输出 asp.net 文件 操作方法
下载远程(第三方服务器)文件、图片,保存到本地(服务器)的方法、保存抓取远程文件、图片
将一台服务器的文件、图片,保存(下载)到另外一台服务器进行保存的方法:

1 #region 图片下载
2
3 #region 图片下载【使用流、WebRequest进行保存】
4 /// <summary>
5 /// 图片下载【使用流、WebRequest进行保存】
6 /// </summary>
7 /// <param name="fileUrl">图片URL地址(例如:http://img.baidu.com/video/img/video_logo_new.gif) </param>
8 /// <param name="path">存储到本地(服务器)路径(例如:Upload/Image)</param>
9 /// <param name="fileName">文件名(包含后缀名)</param>
10 /// <param name="fileFormat">图片格式</param>
11 public static void WebRequestDownloadFileImage(string fileUrl, string path, string fileName, System.Drawing.Imaging.ImageFormat fileFormat)
12 {
13 try
14 {
15 path = HttpContext.Current.Server.MapPath(string.Format("~/{0}/", path));
16 if (!Directory.Exists(path)) //判断目录是否存在
17 {
18 Directory.CreateDirectory(path);//创建该文件
19 }
20 WebRequest wreq = WebRequest.Create(fileUrl);
21 using (HttpWebResponse wresp = (HttpWebResponse)wreq.GetResponse())
22 {
23 Stream s = wresp.GetResponseStream();
24 System.Drawing.Image img;
25 img = System.Drawing.Image.FromStream(s);
26 path = path + fileName;
27 img.Save(path, fileFormat); //保存
28 }
29 }
30 catch (Exception ex)
31 {
32 throw;
33 }
34 }
35 #endregion
36
37 #region 图片下载【使用流、WebClient进行保存】
38 /// <summary>
39 /// 图片下载【使用流、WebClient进行保存】
40 /// </summary>
41 /// <param name="fileUrl">图片URL地址(例如:http://img.baidu.com/video/img/video_logo_new.gif) </param>
42 /// <param name="path">存储到本地(服务器)路径(例如:Upload/Image)</param>
43 /// <param name="fileName">文件名称(包含后缀名)</param>
44 /// <param name="fileFormat">图片格式</param>
45 public static void WebClientDownloadFileImage(string fileUrl, string path, string fileName, System.Drawing.Imaging.ImageFormat fileFormat)
46 {
47 try
48 {
49 path = HttpContext.Current.Server.MapPath(string.Format("~/{0}/", path));
50 if (!Directory.Exists(path)) //判断目录是否存在
51 {
52 Directory.CreateDirectory(path);//创建该文件
53 }
54 WebClient webClient = new WebClient();
55 byte[] imgByte;
56 imgByte = webClient.DownloadData(fileUrl);
57 using (MemoryStream ms = new MemoryStream(imgByte))
58 {
59 System.Drawing.Image img;
60 img = System.Drawing.Image.FromStream(ms);
61 path = path + fileName;
62 img.Save(path, fileFormat); //保存
63 }
64 }
65 catch (Exception ex)
66 {
67 throw;
68 }
69
70 }
71 #endregion
72 #endregion
73
74 #region 文件下载(从第三方服务器下载到本服务器)
75
76 #region 下载(第三方)远程文件保存到本地(自己服务器)的方法、保存抓取远程图片【异步下载】
77 /// <summary>
78 /// 下载(第三方)远程图片保存到本地(自己服务器)的方法、保存抓取远程图片 【异步下载】
79 /// </summary>
80 /// <param name="fileUrl">文件URL地址(例如:http://img.baidu.com/video/img/video_logo_new.gif) </param>
81 /// <param name="path">存储到本地(服务器)路径(例如:Upload/Image)</param>
82 /// <param name="fileName">文件名称(包括后缀名)(例如:login.jpg)</param>
83 public static void DownloadFileAsync(string fileUrl, string path, string fileName)
84 {
85 try
86 {
87 System.Net.WebClient client = new System.Net.WebClient();
88 path = HttpContext.Current.Server.MapPath(string.Format("~/{0}/", path));
89 if (!Directory.Exists(path)) //判断目录是否存在
90 {
91 Directory.CreateDirectory(path);//创建该文件
92 }
93 path = path + fileName;
94 client.DownloadFileAsync(new Uri(fileUrl, UriKind.RelativeOrAbsolute), path);
95 }
96 catch (Exception ex)
97 {
98
99 }
100 }
101 #endregion
102
103 #region 下载(第三方)远程文件保存到本地(自己服务器)的方法、保存抓取远程图片【同步下载】
104 /// <summary>
105 /// 下载(第三方)远程图片保存到本地(自己服务器)的方法、保存抓取远程图片 【同步下载】
106 /// </summary>
107 /// <param name="fileUrl">文件URL地址(例如:http://img.baidu.com/video/img/video_logo_new.gif) </param>
108 /// <param name="path">存储到本地(服务器)路径(例如:Upload/Image)</param>
109 /// <param name="fileName">文件名称(包括后缀名)(例如:login.jpg)</param>
110 public static void DownloadFile(string fileUrl, string path, string fileName)
111 {
112 try
113 {
114 System.Net.WebClient client = new System.Net.WebClient();
115 path = HttpContext.Current.Server.MapPath(string.Format("~/{0}/", path));
116 if (!Directory.Exists(path)) //判断目录是否存在
117 {
118 Directory.CreateDirectory(path);//创建该文件
119 }
120 path = path + fileName;
121 client.DownloadFile(new Uri(fileUrl, UriKind.RelativeOrAbsolute), path);
122 }
123 catch (Exception ex)
124 {
125
126 }
127 }
128 #endregion
129
130 #endregion

将图片的二进制字节字符串在HTML页面以图片形式输出
具体实现代码如下:
1、新建一个一般处理程序: Image.ashx

1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Web;
5 using System.Net;
6 using System.Drawing.Imaging;
7 using System.IO;
8
9 namespace Test
10 {
11 /// <summary>
12 ///测试图片以二进制字节输出到HTML页面(显示成图片)
13 /// </summary>
14 public class Image : IHttpHandler
15 {
16
17 public void ProcessRequest(HttpContext context)
18 {
19 //方法一:
20 //WebRequest wreq = WebRequest.Create("http://img.baidu.com/video/img/video_logo_new.gif");
21 //HttpWebResponse wresp = (HttpWebResponse)wreq.GetResponse();
22 //Stream s = wresp.GetResponseStream();
23 //System.Drawing.Image img;
24 //img = System.Drawing.Image.FromStream(s);
25 ////下面直接输出
26 //MemoryStream ms = new MemoryStream();
27 //img.Dispose();
28
29 //关键代码
30 //context.Response.ClearContent();
31 //context.Response.ContentType = "image/gif";
32 //context.Response.BinaryWrite(ms.ToArray());
33
34 //方法二:
35 WebClient my = new WebClient();
36 byte[] mybyte;
37 mybyte = my.DownloadData("http://img.baidu.com/video/img/video_logo_new.gif");
38 MemoryStream ms = new MemoryStream(mybyte);
39 System.Drawing.Image img;
40 img = System.Drawing.Image.FromStream(ms);
41 //关键代码
42 context.Response.ClearContent();
43 context.Response.ContentType = "image/gif";
44 context.Response.BinaryWrite(mybyte);
45 }
46
47 public bool IsReusable
48 {
49 get
50 {
51 return false;
52 }
53 }
54 }
55 }

2、新建一个HTML页面:ImageTest.htm

1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2 <html xmlns="http://www.w3.org/1999/xhtml"> 3 <head> 4 <title></title> 5 </head> 6 <body> 7 使用:Response.BinaryWrite 二进制字符串方式输出图片:<br /> 8 主要:图片 img标签路径(src)要指向那个(Image.ashx)一般处理程序<br /> 9 <img src="Image.ashx"/> 10 </body> 11 </html>

asp.net 文件 操作方法

1 /// <summary>
2 /// 移动文件
3 /// </summary>
4 /// <param name="oldPath">源文件路径</param>
5 /// <param name="newPath">目标文件路径</param>
6 /// <param name="fileName">文件名称</param>
7 public static void MoveFile(string oldPath, string newPath, string fileName)
8 {
9 if (!Directory.Exists(newPath))
10 {
11 //不存在则自动创建文件夹
12 Directory.CreateDirectory(newPath);
13 }
14 File.Move(oldPath + fileName, newPath + fileName);
15 }
16
17 /// <summary>
18 /// 批量移动文件
19 /// </summary>
20 /// <param name="oldPath">源文件路径</param>
21 /// <param name="newPath">目标文件路径</param>
22 /// <param name="fileNameList">文件名称</param>
23 public static void MoveFile(string oldPath, string newPath, ArrayList fileNameList)
24 {
25 if (!Directory.Exists(newPath))
26 {
27 //不存在则自动创建文件夹
28 Directory.CreateDirectory(newPath);
29 }
30 for (int i = 0; i < fileNameList.Count; i++)
31 {
32 File.Move(oldPath + fileNameList[i], newPath + fileNameList[i]);
33 }
34 }
35
36 /// <summary>
37 /// 删除文件
38 /// </summary>
39 /// <param name="path">文件路径</param>
40 /// <returns>删除结果,成功或失败</returns>
41 public static bool DeleteFile(string path)
42 {
43 try
44 {
45 File.Delete(path);
46 return true;
47 }
48 catch
49 {
50 return false;
51 }
52 }
53
54 /// <summary>
55 /// 删除文件夹
56 /// </summary>
57 /// <param name="path">文件夹路径</param>
58 /// <returns>删除结果,成功或失败</returns>
59 public static bool DeleteFolder(string path)
60 {
61 try
62 {
63 Directory.Delete(path);
64 return true;
65 }
66 catch
67 {
68 return false;
69 }
70 }
71
72 /// <summary>
73 /// 移动文件夹
74 /// </summary>
75 /// <param name="oldPath">源文件夹路径</param>
76 /// <param name="newPath">目标文件夹路径</param>
77 /// <returns>移动结果</returns>
78 public static bool MoveFolder(string oldPath, string newPath)
79 {
80 try
81 {
82 Directory.Move(oldPath, newPath);
83 return true;
84 }
85 catch
86 {
87 return false;
88 }
89 }

下载远程(第三方服务器)文件、图片,保存到本地(服务器)的方法、保存抓取远程文件、图片 将图片的二进制字节字符串在HTML页面以图片形式输出 asp.net 文件 操作方法的更多相关文章
- 请求一个action,将图片的二进制字节字符串在视图页面以图片形式输出
有些时候需要将二进制图片字节在发送浏览器以图片形式显示: 下面是一些示例代码: 控制器: /// <summary> /// 将图片的二进制字节字符串在视图页面以图片形式输出 /// &l ...
- 将图片的二进制字节字符串在HTML页面以图片形式输出
具体实现代码如下: 1.新建一个一般处理程序: Image.ashx using System; using System.Collections.Generic; using System.Linq ...
- asp自动解析网页中的图片地址,并将其保存到本地服务器
程序实现功能:自动将远程页面的文件中的图片下载到本地. 程序代码 <% '将本文保存为 save2local.asp '测试:save2local.asp?url=http://ent.sina ...
- 百度UEditor编辑器关闭抓取远程图片功能(默认开启)
这个坑娘的功能,开始时居然不知道如何触发,以为有个按钮,点击一下触发,翻阅了文档,没有发现,然后再网络上看到原来是复制粘贴非白名单内的图片到编辑框时触发,坑娘啊............... 问题又来 ...
- PHP抓取远程图片教程(包含不带后缀图片)
之前做微信登录开发时候,发现微信头像图片没有后缀名,传统的图片抓取方式不奏效,需要特殊的抓取处理.所以,后来将各种情况结合起来,封装成一个类,分享出来. 创建项目 作为演示,我们在www根目录创建项目 ...
- php抓取远程数据显示在下拉列表中
前言:周五10月20日的时候,经理让做一个插件,使用的thinkphp做这个demo 使用CURL抓取远程数据时如果出现乱码问题可以加入 header("content-type:text/ ...
- 【转载】ASP.NET以Post方式抓取远程网页内容类似爬虫功能
使用HttpWebRequest等Http相关类,可以在应用程序中或者网站中模拟浏览器发送Post请求,在请求带入相应的Post参数值,而后请求回远程网页信息.实现这一功能也很简单,主要是依靠Http ...
- php使用curl简单抓取远程url的方法
这篇文章主要介绍了php使用curl简单抓取远程url的方法,涉及php操作curl的技巧,具有一定参考借鉴价值,需要的朋友可以参考下 本文实例讲述了php使用curl抓取远程url的方法.分 ...
- 利用wireshark抓取远程linux上的数据包
原文发表在我的博客主页,转载请注明出处. 前言 因为出差,前后准备总结了一周多,所以博客有所搁置.出差真是累人的活计,不过确实可以学习到很多东西,跟着老板学习做人,学习交流的技巧.入正题~ wires ...
随机推荐
- MySQL8.0手动安装心得。
https://dev.mysql.com/downloads/mysql/ mysql从5.7一下子跳跃到了8.0,其中的改变还是很大,有点这里就不说了,小伙伴们自己去百度了解一下,这里重点说一下, ...
- android studio中的常用快捷键
1.Ctrl+Alt+Space 这个类似Eclipse中的Alt+/,实现智能提示功能的 2.Ctrl+Y 删除当前行,Eclipse中是Ctrl+D,伤不起,每次都习惯性的按Ctrl+D,不删,反 ...
- iOS 设置 UIWebView UserAgent
NSString *userAgent = [[[UIWebView alloc] init] stringByEvaluatingJavaScriptFromString:@"naviga ...
- iOS开发技巧 - 使用UIDatePicker来选择日期和时间
(Swift) import UIKit class ViewController: UIViewController { var datePicker: UIDatePicker! func dat ...
- angularjs的config和interceptor - session注入
config 这个要从config的正确使用说起,也许你想在config某个provider的时候注入$rootscope, 但是这是不允许的,我们细看下面的特性 session注入 每个请求自带se ...
- 〖Linux〗iptables端口转发(11.11.136.80:5552 <==> 10.10.136.1:8055/11.11.136.1:8055)
环境: pc1: 10.10.72.1 (network: 10.10.72.0/22) pc2: 地址1: 10.10.136.1 (nework: 10.10.136.0/22) 地址2: 11. ...
- 【Linux】循环控制及状态返回值break、continue、exit、return
一.break.continue.exit.return的区别和对比 break n :如果省略n,则表示跳出整个循环,n表示跳出循环的层数 continue n:如果省略n,则表示跳过本次循 ...
- 【Linux】文件权限
Linux的每一个文件都跟多种类型相关联.在这些权限中,我们通常需要和三类权限打交道(用户.用户组以及其他实体). 1.文件权限查看ls –l Linux:/qinys # ls -l total 6 ...
- 【物联网智能网关-17】.NET Micro Framework之MDK C++二次开发
.NET Micro Framework虽然好学易用,但是在一些需要实时,需要高性能的应用领域,却有些勉为其难.毕竟.NET Micro Framework上层应用程序由底层CLR(TinyCLR)解 ...
- 输出前 k 大的数
总时间限制: 10000ms 单个测试点时间限制: 1000ms 内存限制: 65536kB 描述 给定一个数组,统计前k大的数并且把这k个数从大到小输出. 输入 第一行包含一个整数n,表示数组的大小 ...