解决文件下载弹出窗体被拦截
2006-10-03 17:14:56 来源:WEB开发网原来我们项目在开发时中(文件是存储在数据库中)下载文件采用写入http头的形式。如下 Response.Clear();
Response.Buffer = false;
Response.AppendHeader("Content-Disposition","attachment;filename="+HttpUtility.UrlEncode(fileWJNR.Rows[0]["WJM"].ToString(),System.Text.Encoding.UTF8));
Response.BinaryWrite(字节流);
Response.End();
但在项目部署后,用户的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();
}
- ››解决Windows 7无法识别杀毒软件的问题
- ››解决无法访问windows installer服务
- ››解决Windows 7网络延迟问题的技巧
- ››解决微软Windows 7系统的四大热门问题
- ››解决Windows 7中无法卸载补丁包更新
- ››解决2000和XP网上邻居互访慢
- ››解决Android平板电脑上开发应用程序不能全屏显示的...
- ››解决ubuntu下mysql不能远程连接数据库的问题
- ››解决android 导入ApiDemos后项目出错
- ››解决VS2008中生成C/C++项目时遇到“生成‘rc.exe’...
- ››解决VisualStudio2008下asp.net mvc开发向View中添...
- ››解决Windows Mobile 唤醒屏不亮的问题之总结
更多精彩
赞助商链接