using System;
using System.Net;
using System.IO;
using System.Text;
namespace mynamespace
{
public class Downloader
{
/// <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)
{
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);
}
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;
}
}
}
//调用
public void DownloadImg()
{
string imgUrl = "http://static.sporttery.cn/images/2014/12/10/15-1412100T3021H.png";
string imgFileName = imgUrl.Substring(imgUrl.LastIndexOf('/')+1);
Downloader.DownloadPicture(imgUrl, imgFileName, 300);
}