当前位置:编程学习 > C#/ASP.NET >>

C#通过url下载图片

实现代码如下:

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
    } 
    
补充:软件开发 , C# ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,