zoukankan      html  css  js  c++  java
  • 根据URL下载图片到本地

    /// <summary>
    /// 下载图片
    /// </summary>
    /// <param name="picUrl">图片Http地址</param>
    /// <param name="savePath">保存路径</param>
    /// <param name="timeOut">Request最大请求时间,如果为-1则无限制</param>
    /// <returns></returns>
    public 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
    {         string dic = Path.GetDirectoryName(savePath);                if (string.IsNullOrEmpty(dic)) return false;                if (Directory.Exists(dic) == false) Directory.CreateDirectory(dic);
    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;
    }

  • 相关阅读:
    AKKA学习(二) 未完
    AKKA学习(一)
    seata项目结构
    seata demo
    FESCAR
    GTS原理、架构
    Fescar使用(资料)
    高性能异步分布式事务TCC框架(资料汇总)
    TIDB学习资料
    自旋锁
  • 原文地址:https://www.cnblogs.com/520lw/p/12972213.html
Copyright © 2011-2022 走看看