CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  Web 开发

百分求救,下载文件的页面不能被左面的链接调用了?

楼主jiqimaozyq()2004-07-02 09:45:13 在 Java / Web 开发 提问

页面有左右两个框架,左边是导航条,点击导航条上的按钮,相应的页面显示在右边。  
  但是现在碰到的问题是:如果右边是一个文件下载页面,当我点击下载链接调用download.jsp下载文件成功后(没有使用弹出新页面的方式,即没有使用target="_blank",这是客户需求),再点击左边导航条的其它按钮想跳到其它页面,右边无法显示相应的页面。  
  从程序运行打印的日志来看,下载文件完成后点击其它按钮时调用的servlet程序已经成功执行,只是页面跳转时,新的页面显示不了,如果将文件下载页面刷新一下就好了。  
  怀疑是页面输出流发生了改变的原因,但是却不知道如何解决。请问一下有没有高手碰到并且解决过这个问题,万分感谢!!!!!!  
   
   
  我的下载程序是这样写的:  
                try{  
                  response.reset();  
                  response.setHeader("content-disposition",  
                                                        "attachment;filename="   +  
                                                        toUtf8String(fileName));   //fileName是在前面取得的文件名称,可以含中文  
  //                 通用下载程序  
                  java.io.FileInputStream   f   =   new   java.io.FileInputStream(file);   其中的file是文件的绝对路径,在前面的程序获得,比如C:\aa.txt  
                  java.io.OutputStream   o   =   response.getOutputStream();  
                  int   bufSize   =   2   *   100   *   1024;  
                  byte[]   buf   =   new   byte[bufSize];  
                  int   ret;  
                  while   (true)   {  
                      ret   =   f.read(buf);  
                      if   (ret   !=   bufSize)   {  
                          o.flush();  
                          o.write(buf,   0,   ret);  
                          break;  
                      }  
                      else   {  
                          o.write(buf);  
                      }  
                      o.flush();  
                  }  
                  o.flush();  
                  f.close();  
             
          }  
          catch   (Exception   ex)   {  
              System.out.println("DownLoadFileError   :   "   +   ex.toString());  
              throw   ex;  
          }  
          //对文件进行编码转换的方法  
          public   static   String   toUtf8String(String   s)   {  
          StringBuffer   sb   =   new   StringBuffer();  
          for   (int   i   =   0;   i   <   s.length();   i++)   {  
              char   c   =   s.charAt(i);  
              if   (c   >=   0   &&   c   <=   255)   {  
                  sb.append(c);  
              }  
              else   {  
                  byte[]   b;  
                  try   {  
                      b   =   Character.toString(c).getBytes("utf-8");  
                  }  
                  catch   (Exception   ex)   {  
                      System.out.println(ex);  
                      b   =   new   byte[0];  
                  }  
                  for   (int   j   =   0;   j   <   b.length;   j++)   {  
                      int   k   =   b[j];  
                      if   (k   <   0)   {  
                          k   +=   256;  
                      }  
                      sb.append("%"   +   Integer.toHexString(k).  
                                          toUpperCase());  
                  }  
              }  
          }  
          return   sb.toString();  
      }  
  问题点数:0、回复次数:0Top

相关问题

  • 页面调用
  • 页面调用
  • 如何在asp页面中调用dll文件
  • 页面中调用Flash文件的问题
  • 在线求助:JSP页面如何调用JAR包文件啊!
  • 请问在asp页面上可以调用.VBS文件吗??
  • asp.net页面中调用.js文件的郁闷问题
  • 在web页面如何调用.sql文件
  • 关于用exe文件调用asp页面的问题!!
  • 如何调用系统的“搜索文件文件夹”窗体及其页面?

关键词

  • 页面
  • 文件
  • 下载
  • 导航
  • 调用
  • 程序
  • 按钮
  • bufsize
  • 点击
  • flush

得分解答快速导航

  • 帖主:jiqimaozyq

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo