首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

html A标签 href 怎么实现下载 图片

2013-09-26 
html A标签 href 如何实现下载 图片。html A标签 href 如何实现下载 图片。htmlheadmeta http-equivC

html A标签 href 如何实现下载 图片。
html A标签 href 如何实现下载 图片。

<html>
<head>
<meta http-equiv="Content-Disposition" content="attachment;">
</head>
<body>
<a target="_blank" href="http://stimgcn1.s-msn.com/msnportal/hp/2012/10/18/b24b7623-cddc-408d-a01a-c6c3582a612b.png" >测试图片下载!</a>
</body>
</html>
html 图片 标签
[解决办法]
这个是显示图片,因为浏览器认识png的格式,自动做显示处理了

你需要后台写一个输出二进制格式图片文件流,并且指定
contenttype为
<meta http-equiv="Content-Disposition" content="attachment;">
[解决办法]
如果是你自己的站点
通过 IHttpModule 


        /// <summary>
        /// 在 ASP.NET 事件处理程序(例如,某页或某个 XML Web service)执行完毕时发生(4.5、4、3.5、3.0、2.0、1.1、1.0)。
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void PostRequestHandlerExecuteEvent(object sender, EventArgs e)
        {
            HttpApplication ha = (HttpApplication)sender;

            string filePath = ha.Request.FilePath;

            if (filePath.Contains(".") && filePath.Remove(0, filePath.LastIndexOf('.')) == ".png")
            {
                using (FileStream fs = new FileStream(ha.Server.MapPath(filePath), FileMode.Open, FileAccess.Read))
                {


                    int fslength = (int)fs.Length;
                    byte[] b = new byte[fslength];
                    fs.Read(b, 0, fslength);
                    ha.Response.ContentType = "application/octet-stream";
                    ha.Response.Write(b);
                    ha.Response.Flush();
                    ha.Response.End();
                }
            }
        }




<html>
<head>
</head>
<body>
<img src="http://stimgcn1.s-msn.com/msnportal/hp/2012/10/18/b24b7623-cddc-408d-a01a-c6c3582a612b.png" />
<a target="_blank" href="http://stimgcn1.s-msn.com/msnportal/hp/2012/10/18/b24b7623-cddc-408d-a01a-c6c3582a612b.png" >测试图片下载!</a>
</body>
</html>


[解决办法]
要在IIS 配置
[解决办法]

/// <summary>
    /// 文件下载
    /// </summary>
    /// <param name="s_fileName"></param>
    public static void downloadfile(string s_fileName)
    {
        HttpContext.Current.Response.ContentType = "application/ms-download";
        string s_path = HttpContext.Current.Server.MapPath("~/") + s_fileName;
        System.IO.FileInfo file = new System.IO.FileInfo(s_path);
        HttpContext.Current.Response.Clear();
        HttpContext.Current.Response.AddHeader("Content-Type", "application/octet-stream");


        HttpContext.Current.Response.Charset = "utf-8";
        HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(file.Name, System.Text.Encoding.UTF8));
        HttpContext.Current.Response.AddHeader("Content-Length", file.Length.ToString());
        HttpContext.Current.Response.WriteFile(file.FullName);
        HttpContext.Current.Response.Flush();
        HttpContext.Current.Response.Clear();
        HttpContext.Current.Response.End();
    }




后台onclick调用就行了.
[解决办法]
refer : http://blog.csdn.net/awinliu/article/details/9401083

热点排行