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
        }
  • 相关阅读:
    22(1).模型融合---Random Forest
    Tesseract 模块
    非线性问题的三种处理方法
    jupyter 快捷键
    回归评价指标---MSE、RMSE、MAE、R-Squared
    理解JavaScript中的事件处理
    jquery事件重复绑定解决办法
    IE6 IE7 IE8(Q) 不支持 JSON 对象
    浏览器事件机制与自定义事件的实现
    浏览器加载和渲染html的顺序
  • 原文地址:https://www.cnblogs.com/guanjie20/p/2790460.html
Copyright © 2011-2022 走看看