解决文件下载弹出窗体被拦截

原来我们项目在开发时中(文件是存储在数据库中)下载文件采用写入http头的形式。如下
None.gif Response.Clear();
None.gifResponse.Buffer 
=   false ;
None.gifResponse.AppendHeader(
" Content-Disposition " , " attachment;filename= " + HttpUtility.UrlEncode(fileWJNR.Rows[ 0 ][ " WJM " ].ToString(),System.Text.Encoding.UTF8));
None.gifResponse.BinaryWrite(字节流);
None.gifResponse.End();
None.gif

        但在项目部署后,用户的IE6.0浏览时,会被拦截,并关闭退出。当时同事用了弹出一个窗体,再在弹出的窗体中再“点击下载”,这样就不会被拦截。
        我试了一个更直接的解决方法,就是点击时,先生成临时文件,再链接至临时文件,即弹出文件下载或打开对话框。代码很简单:

    string fileName =  "文件名"               //用文件id
    string tempFilePath = Request.PhysicalPath;
    tempFilePath = tempFilePath.Substring(0,tempFilePath.LastIndexOf("\\"));
    tempFilePath += "\\temp\\" + fileName;
    FileStream file = new FileStream(tempFilePath,FileMode.OpenOrCreate,FileAccess.ReadWrite);

    try
    {
    
     byte[] docBody =  (byte[])fileWJNR.Rows[0]["WJNR"];          //转换
     file.Write(docBody, 0, docBody.Length);
     file.Close();
     Response.Redirect("temp\\" + fileName);
    }
    catch
    {
        file.Close();
    }

转载于:https://www.cnblogs.com/wubike/archive/2006/09/30/headoff.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值