zoukankan      html  css  js  c++  java
  • c#实现远程图片下载

    public partial class DownLoadFile : System.Web.UI.Page
        {
            protected void Page_Load(object sender, EventArgs e)
            {
                string picName = Request.QueryString["InternalSysURL"];
                if (!String.IsNullOrEmpty(picName))
                {
                    byte[] content = this.GetImageContent(picName);
                    this.WriteResponse(picName, content);
                }
            }
     
            #region
            private byte[] GetImageContent(string picName)
            {
                string fileURL = GetImgUrlPrefix() + picName;
     
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(fileURL);
                request.AllowAutoRedirect = true;
     
                WebProxy proxy = new WebProxy();
                proxy.BypassProxyOnLocal = true;
                proxy.UseDefaultCredentials = true;
     
                request.Proxy = proxy;
     
                WebResponse response = request.GetResponse();
     
                using (Stream stream = response.GetResponseStream())
                {
                    using (MemoryStream ms = new MemoryStream())
                    {
                        Byte[] buffer = new Byte[1024];
                        int current = 0;
                        while ((current = stream.Read(buffer, 0, buffer.Length)) != 0)
                        {
                            ms.Write(buffer, 0, current);
                        }
                        return ms.ToArray();
                    }
                }
            }
     
            private void WriteResponse(string picName, byte[] content)
            {
                Response.Clear();
                Response.ClearHeaders();
                Response.Buffer = false;
                Response.ContentType = "application/octet-stream";
                Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(picName, Encoding.Default));
                Response.AppendHeader("Content-Length", content.Length.ToString());
                Response.BinaryWrite(content);
                Response.Flush();
                Response.End();
            }
     
            private static string GetImgUrlPrefix()
            {
                XmlDocument xmlDoc = new XmlDocument();
                xmlDoc.Load(AppDomain.CurrentDomain.BaseDirectory + "//Pages//ItemMaintain//ImageDownLoad.xml");
                XmlNodeList nodes = xmlDoc.GetElementsByTagName("ProductImageOriginal");
                if (nodes.Count > 0)
                {
                    return nodes[0].ChildNodes[0].Value;
                }
                else { return ""; }
            }
     
            #endregion
        }
  • 相关阅读:
    Android ViewPager动画切换
    Android 窗口全屏
    心情记忆
    C语言难点1之输入输出,链接,字符串操作
    SMR磁盘学习9---Classifying Data to Reduce Long Term Data Movement in Shingled Write Disks
    SMR磁盘学习12---drivemanaged SMR 磁盘总结
    SMR磁盘学习11---Data Management and Layout for Shingled Magnetic Recording
    SMR磁盘学习10---Data Handling Algorithms For Autonomous Shingled Magnetic Recording HDDs
    SMR磁盘学习8---Novel Address Mappings for Shingled Write Disks
    SMR磁盘学习7---Data Handling Algorithms For Autonomous Shingled Magnetic Recording HDDs
  • 原文地址:https://www.cnblogs.com/guanjie20/p/2790460.html
Copyright © 2011-2022 走看看