下载方法

using System;
using System.Net;
using System.IO;
using System.Text;
namespace Common
{
/// <summary>
/// 下载远程图片保存到本地地址
/// </summary>
public class DowloadWXImg
{
/// <summary>
/// 下载图片
/// </summary>
/// <param name="picUrl">图片Http地址</param>
/// <param name="savePath">保存路径</param>
/// <param name="timeOut">Request最大请求时间,如果为-1则无限制</param>
/// <returns></returns>
public static bool DownloadPicture(string picUrl, string savePath, int timeOut=-1)
{ bool value = false; WebResponse response = null; Stream stream = null; try
{ HttpWebRequest request = (HttpWebRequest)WebRequest.Create(picUrl); if (timeOut != -1) request.Timeout = timeOut; response = request.GetResponse(); stream = response.GetResponseStream(); if (!response.ContentType.ToLower().StartsWith("text/"))
value = SaveBinaryFile(response, savePath);
}
catch (Exception e) {
LogHelper.AddErrorLog("下载远程图片失败:"+e.ToString()); }
finally
{
if (stream != null) stream.Close();
if (response != null) response.Close();
}
return value;
}
private static bool SaveBinaryFile(WebResponse response, string savePath)
{
bool value = false;
byte[] buffer = new byte[1024];
Stream outStream = null;
Stream inStream = null;
try
{
if (File.Exists(savePath)) File.Delete(savePath);
outStream = System.IO.File.Create(savePath);
inStream = response.GetResponseStream();
int l;
do
{
l = inStream.Read(buffer, 0, buffer.Length);
if (l > 0) outStream.Write(buffer, 0, l);
} while (l > 0);
value = true;
}
finally
{
if (outStream != null) outStream.Close();
if (inStream != null) inStream.Close();
}
return value;
}
}
}

  

流程:

string img = "/Img/CustomerHeadImg/" + OrgID;
//string SavaWxImage = Server.MapPath(img); //该方法是获取网站所在的根目录
          //
//System.AppDomain.CurrentDomain.BaseDirectory 这个方法 是获取网站下面的应用程序目录

 
                string SavaWxImage = System.AppDomain.CurrentDomain.BaseDirectory+img;
   if (!Directory.Exists(SavaWxImage))//是否存在文件夹,没存在则创建
Directory.CreateDirectory(SavaWxImage); bool isWXImg = DowloadWXImg.DownloadPicture(wxImage, SavaWxImage+"/" + unionid + ".jpg");

最新文章

  1. ******IT公司面试题汇总+优秀技术博客汇总
  2. C# MD5加密
  3. nginx的主要用途
  4. C#设计模式——迭代器模式(Iterator Pattern)
  5. Windows主机里利用VMware安装Linux(CentOS)虚拟机,Host-only连接上网方式详解
  6. js prototype
  7. AOP 之 6.1 AOP基础(拾陆)
  8. android avoiding-memory-leaks
  9. 《Code Complete》ch.25 代码调整策略
  10. 理解C# Lazy&lt;T&gt;
  11. C# 泛型转换 将object[] 数组转换为泛型列表
  12. [Usaco2008 Feb]Eating Together麻烦的聚餐[最长不下降子序列]
  13. JS 处理十六进制颜色渐变算法-输入颜色,输出渐变rgb数组
  14. HDU 2674 N!Again
  15. cookie的路径问题
  16. 使用 gzexe 快速加密解密文件内容
  17. dotnet 在build restore publish 的时候不显示警告
  18. python的变量和简单的数据类型
  19. Spark 基础之SQL 快速上手
  20. BZOJ 1059 [ZJOI2007]矩阵游戏 (二分图最大匹配)

热门文章

  1. PM2 部署 nodejs 项目
  2. 【CSS】关于flex
  3. sum函数
  4. Linux系统的环境变量$PATH
  5. linux 中安装mysql8.0
  6. 软工之 NABCD 模型分析及 Web of Paper 原型设计结对作业
  7. 获取某商家当前每个月销量sql语句。
  8. Oracle 使用RMAN进行备份
  9. Docker 常用命令——容器
  10. standby_file_management 参数为manual 导致ORA-01111问题