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触碰事件
    opencv矩阵运算(2)
    [ACM] HDU 1400 Mondriaan's Dream (状态压缩,长2宽1长方形铺满)
    指针知识梳理8- 指针的指针
    Git学习笔记(一)
    Object-c Associated Object
    YTUOJ-计算该日在本年中是第几天(用户自己定义类型)
    MYSQL源代码编译的变动
    手机端小问题整理
  • 原文地址:https://www.cnblogs.com/guanjie20/p/2790460.html
Copyright © 2011-2022 走看看