将一台服务器的文件、图片,保存(下载)到另外一台服务器进行保存的方法:
1 #region 图片下载 2 3 #region 图片下载【使用流、WebRequest进行保存】 4 ///5 /// 图片下载【使用流、WebRequest进行保存】 6 /// 7 /// 图片URL地址(例如:http://img.baidu.com/video/img/video_logo_new.gif) 8 /// 存储到本地(服务器)路径(例如:Upload/Image) 9 /// 文件名(包含后缀名) 10 /// 图片格式 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 ///39 /// 图片下载【使用流、WebClient进行保存】 40 /// 41 /// 图片URL地址(例如:http://img.baidu.com/video/img/video_logo_new.gif) 42 /// 存储到本地(服务器)路径(例如:Upload/Image) 43 /// 文件名称(包含后缀名) 44 /// 图片格式 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 ///78 /// 下载(第三方)远程图片保存到本地(自己服务器)的方法、保存抓取远程图片 【异步下载】 79 /// 80 /// 文件URL地址(例如:http://img.baidu.com/video/img/video_logo_new.gif) 81 /// 存储到本地(服务器)路径(例如:Upload/Image) 82 /// 文件名称(包括后缀名)(例如:login.jpg) 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 #endregion102 103 #region 下载(第三方)远程文件保存到本地(自己服务器)的方法、保存抓取远程图片【同步下载】104 ///105 /// 下载(第三方)远程图片保存到本地(自己服务器)的方法、保存抓取远程图片 【同步下载】106 /// 107 /// 文件URL地址(例如:http://img.baidu.com/video/img/video_logo_new.gif) 108 /// 存储到本地(服务器)路径(例如:Upload/Image)109 /// 文件名称(包括后缀名)(例如:login.jpg)110 public static void DownloadFile(string fileUrl, string path, string fileName)111 {112 try113 {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 #endregion129 130 #endregion