• [转]DownloadImage


    using System;
    2
    using System.Collections.Generic;
    3
    using System.Linq;
    4
    using System.Text;
    5
    using System.IO;
    6
    7
    namespace DownloadImagebyXMLListFor2008 8{
    9    public class HttpDownLoad
    10    {
    11        /**//// <summary>
    12        /// HttpWebRequest Property
    13        /// </summary>
    14        /// <param name="fileName"></param>
    15        /// <param name="url"></param>
    16        /// <param name="localPath"></param>
    17        /// <param name="timeout"></param>
    18        public static void DownloadOneFileByURL(string fileName, string url, string localPath, int timeout)
    19        {
    20            System.Net.HttpWebRequest request = null;
    21            System.Net.HttpWebResponse response = null;
    22            request = (System.Net.HttpWebRequest)System.Net.HttpWebRequest.Create(url + fileName);
    23            request.Timeout = timeout;//8000 Not work ?
    24            response = (System.Net.HttpWebResponse)request.GetResponse();
    25            Stream s = response.GetResponseStream();
    26            BinaryReader br = new BinaryReader(s);
    27            //int length2 = Int32.TryParse(response.ContentLength.ToString(), out 0);
    28            int length2 = Int32.Parse(response.ContentLength.ToString());
    29            byte[] byteArr = new byte[length2];
    30            s.Read(byteArr, 0, length2);
    31            if (File.Exists(localPath + fileName)) { File.Delete(localPath + fileName); }
    32            if (Directory.Exists(localPath) == false) { Directory.CreateDirectory(localPath); }
    33            FileStream fs = File.Create(localPath + fileName);
    34            fs.Write(byteArr, 0, length2);
    35            fs.Close();
    36            br.Close();
    37        }
    38        /**//// <summary>
    39        ///Web Client Method ,only For Small picture
    40        /// </summary>
    41        /// <param name="fileName"></param>
    42        /// <param name="url"></param>
    43        /// <param name="localPath"></param>
    44        public static void DownloadOneFileByURLWithWebClient(string fileName, string url, string localPath)
    45        {
    46            System.Net.WebClient wc = new System.Net.WebClient();
    47            if (File.Exists(localPath + fileName)) { File.Delete(localPath + fileName); }
    48            if (Directory.Exists(localPath) == false) { Directory.CreateDirectory(localPath); }
    49            wc.DownloadFile(url + fileName, localPath + fileName);
    50        }
    51    }
    52}

    需要注意点:
      第一 DownloadOneFileByURL方法,有时会下载不了文件,如果文件大于40K就更明显,DownloadOneFileByURLWithWebClient则无此问题。
      第二 调用时请用Thread,给出一个示例
    1 private void btnGet_Click(object sender, EventArgs e) 2 { 3 if (txtTempFile.Text.Trim().Length == 0) 4 { 5 ErrorStop("列表文件为空!"); return; 6 } 7 System.Threading.Thread thread = new System.Threading.Thread(new System.Threading.ThreadStart(DownloadAll)); 8 thread.Start(); 9 } 10 private void DownloadAll() 11 { 12 List<string> ls = GetStringsByFile(txtTempFile.Text.Trim()); 13 if (null != ls) 14 { 15 16 foreach (string s in ls) 17 { 18 try 19 { 20 //HttpDownLoad.DownloadOneFileByURL(s, Globals.HttpPreUrl, Globals.LocalPrePath, 8000000); 21 HttpDownLoad.DownloadOneFileByURLWithWebClient(s, Globals.HttpPreUrl, Globals.LocalPrePath); 22 } 23 catch { continue; } 24 } 25 } 26 }

  • 相关阅读:
    jQuery prop方法
    ftp550权限问题
    一个很适合用来套用后台的框架
    Ajax中post方法400和404的问题
    图片上传,直接通过js预览
    JavaScript的DOM扩展
    DevExpress v16.1.5图表、Dashboard等多个控件API发生变化
    MyEclipse 2016正式版更新内容
    Smart Tag——DevExpress WPF初探
    MyEclipse使用心得:集成和使用Maven的方法
  • 原文地址:https://www.cnblogs.com/xinyuxin912/p/1223543.html
Copyright © 2020-2023  润新知