ASP.NET 图片下载

我的链接中既有图片下载,又有文档下载,当点击文档时可以正常下载,点击图片下载时就直接打开了,搞了两小时用以下方法解决了,贡和我一样的菜鸟们借鉴!

第一步:在页面中添加一个iframe <iframe src="" runat="server" id="downloadfram" name="downloadfram" width="600px" height="0px"></iframe>;

第二步:将要下载的图片地址绑定到事件中 <a href="#" οnclick="downLoads('<%# Server.UrlEncode(Eval("Ext").ToString())%>')">下载</a>

第三步:编写客户端事件,改变iframe地址

        function downLoads(imgUrl) {
            $("#downloadfram").attr("src", "DownLoad.aspx?imgUrl=" + imgUrl);
        }

       此处应用了jQuery,需要在页面中引入。

第四步:新增一个下载页面 DownLoad.aspx

第五步:编写下载页面服务器端代码

        protected void Page_Load(object sender, EventArgs e)
        {

           if (Request.QueryString["imgUrl"] != null)
            {
                string dirPath = Server.MapPath("/") + Server.UrlDecode(Request.QueryString["imgUrl"].ToString().Replace("~/",""));
                download_Click(dirPath);
            }

        }

 

       protected void download_Click(String path)
        {
            if (File.Exists(path))
            {
                FileInfo DownloadFile = new FileInfo(path);
                Response.Clear();
                Response.ClearHeaders();
                Response.Buffer = false;
                Response.ContentType = "application/octet-stream";
                Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(DownloadFile.FullName, System.Text.Encoding.UTF8));
                Response.AppendHeader("Content-Length", DownloadFile.Length.ToString());
                Response.WriteFile(DownloadFile.FullName);
                Response.Flush();
                Response.End();
            }
        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值