HttpContext.Current.Response.Clear();
System.IO.Stream iStream=myPro.GetProductData(idstr,false,UserConfig.Config_CardGln[0]);
iStream.Seek(0,System.IO.SeekOrigin.Begin);
HttpContext.Current.Response.ContentType="application/zip";
HttpContext.Current.Response.AddHeader("Content-Length", iStream.Length.ToString());
HttpContext.Current.Response.AddHeader("content-disposition","attachment;filename="AA.xml",System.Text.Encoding.UTF8));
int len=1;
while(len>0)
{
byte[] buffer=new Byte[65532];
len = iStream.Read(buffer,0,65532);
HttpContext.Current.Response.OutputStream.Write(buffer,0,len);
HttpContext.Current.Response.Flush();
}
iStream.Close();
HttpContext.Current.Response.End();我想以上这段程序大家都可以看得懂。现在奇怪的问题出来了当我点击一个按钮下载这个文件后,如果不保存一点事情都没有,如果保存,那么这个页面上的所有的javascript程序全部不能用了!!!请问这是什么原因引起的?是由于我HttpContext.Current.Response.Clear();了吗?有什么好方法没有请大家指点下阿。。
System.IO.Stream iStream=myPro.GetProductData(idstr,false,UserConfig.Config_CardGln[0]);
iStream.Seek(0,System.IO.SeekOrigin.Begin);
HttpContext.Current.Response.ContentType="application/zip";
HttpContext.Current.Response.AddHeader("Content-Length", iStream.Length.ToString());
HttpContext.Current.Response.AddHeader("content-disposition","attachment;filename="AA.xml",System.Text.Encoding.UTF8));
int len=1;
while(len>0)
{
byte[] buffer=new Byte[65532];
len = iStream.Read(buffer,0,65532);
HttpContext.Current.Response.OutputStream.Write(buffer,0,len);
HttpContext.Current.Response.Flush();
}
iStream.Close();
HttpContext.Current.Response.End();我想以上这段程序大家都可以看得懂。现在奇怪的问题出来了当我点击一个按钮下载这个文件后,如果不保存一点事情都没有,如果保存,那么这个页面上的所有的javascript程序全部不能用了!!!请问这是什么原因引起的?是由于我HttpContext.Current.Response.Clear();了吗?有什么好方法没有请大家指点下阿。。
解决方案 »
- ASP.NET初级小问题 <%=url%>的用法。
- 如何使用FredCK.FCKeditor
- 跪地求救,上传文件时怎么删除<input type='"file">
- |M| 如何在A网站中的某个页面调用B网站的WebService
- 在vs.net 2003集成环境中可以正常运行,但是在IE中运行却报“应用程序错误”对话框,请高手指教
- 有关datagrid数据更新的问题
- 问一个郁闷了我很久的问题,关于DB2
- 如何在觸發服務器端事件後網頁還保持在當前位置?
- 关闭窗口的问题?
- 请教各位高手:在DataList控件显示一篇文章信息,截取一部分显示!显示DataBiinder()错!没有有效参数!
- 编程自动生成一个web应用的问题。。。请教
- 请教:如何管理asp.net生成页面文件的存放路径
应该是这句的过,你结束了输出,肯定会影响到客户端的代码,你先屏蔽掉它看看。
{
HttpContext.Current.Response.Clear();
System.IO.Stream iStream= new System.IO.MemoryStream();//myPro.GetProductData(idstr,false,UserConfig.Config_CardGln[0]);
iStream.Seek(0,System.IO.SeekOrigin.Begin);
HttpContext.Current.Response.ContentType="application/zip";
HttpContext.Current.Response.AddHeader("Content-Length", iStream.Length.ToString());
HttpContext.Current.Response.AddHeader("content-disposition","attachment;filename=\"AA.xml\"");
//System.Text.Encoding.UTF8));
int len=1;
while(len>0)
{
byte[] buffer=new Byte[65532];
len = iStream.Read(buffer,0,65532);
HttpContext.Current.Response.OutputStream.Write(buffer,0,len);
HttpContext.Current.Response.Flush();
}
iStream.Close();
HttpContext.Current.Response.End();
}运行正常啊。你的js是动态添加到页面上的吗?
实际上我的整个页面是这样的。页面是个框架。左边是菜单,右边是内容,当点击右边的下载后并且保存后,左边导航菜单的所有的链接效果丢失,右边内容你的脚本信息丢失。。
如果不点击保存,那么整个页面都是正常的~~~~~~~~~~~~~~
我的js是直接放到页面上的。
http://211.219.23.6:100/search/index.HTM
http://219.234.93.6:100/search/index.HTM
打开页面-》取消高级搜索-》搜索-》操作列选中一项-》下载-》保存-》再次选择-》js正常工作
这个语句,是改变当前页面的头部标志,改变之后,此页面即转为输出文件的页面,不再是ContentType="html/text"格式了
你认为,能在WORD中运行JS脚本吗?不能.
同样的,你也不能在非html文件中运行JS脚本.
我这里正常
你们用的是2003带的IE吗?
改过之后,javascript当然不行了在一个网页中,你只使用一种格式输出数据,
要用zip就不能再用html方式。
{
Response.Write("<script language='javascript'>alert('对不起,文件不存在!');</script>");
return;
}
Response.Clear();
Response.ClearHeaders();
Response.Charset = "GB2312";
Response.ContentEncoding =System.Text.Encoding.UTF8;
Response.ContentType = "application/octet-stream";
FileInfo fi=new FileInfo(strFile);
Response.AddHeader("Content-Disposition","attachment; filename=" + HttpUtility.UrlEncode(fi.Name)) ;
Response.AddHeader("Content-Length",fi.Length.ToString());
byte[] tmpbyte=new byte[1024*8];
FileStream fs=fi.OpenRead();
int count;
while((count=fs.Read(tmpbyte,0,tmpbyte.Length))>0)
{
Response.BinaryWrite(tmpbyte);
Response.Flush();
}
fs.Close();
Response.End();
不要用Response.Write,
不要用Response.Write,
不要用Response.Write,
不要用Response.Write,
不要用Response.Write,
不要用Response.Write,
不要用Response.Write,
不要用Response.Write,
不要用Response.Write,
不要用Response.Write,
不要用Response.Write,
不要用Response.Write,
不要用Response.Write,
不要用Response.Write,
不要用Response.Write,
不要用Response.Write,
不要用Response.Write,
不要用Response.Write,
to: fengfangfang() 为什么有些人一切正常???如果要是你说的这个错误的话,应该所有的客户端出现一样的错误,而为什么象fancyf(凡瑞) 这样的客户端就没有问题了?这说明你的解释是说不过去的。
同样在我这得问题是,如果在框架中就会出现我说的问题,而如果这个下载页面放在单独的页面中就没有任何问题。如果点击下载出现保存的提示框而不保存也么没有问题(备注:只有在保存后出现问题)to:codeangel 请问是在那儿不要用Response.Write??是HttpContext.Current.Response.BinaryWrite(buffer); 吗?