首页 新闻 会员 周边 捐助

崩溃了!! jsp下载问题。高手帮帮忙了。。。

0
[待解决问题]

我现在用jsp实现一个文件下砸功能,点击下载连接或。弹出一个保存框,正常的应该有 打开、保存、取消三个按钮,而我的没有打开按钮。并且点保存后文件类型显示未知,文件名也不是我设置的文件名。下载下来后用文件的真实类型打开也没问题。怎样才能让保存框自动识别文件类型,文件名实我设置的那个文件名呢?希望大家不吝赐教

第一种方法试过了,不行。
String szHref=request.getParameter("Href");
  String path=request.getRealPath("");  

  //新建一个SmartUpload对象
  SmartUpload su = new SmartUpload();
  //初始化
  su.initialize(pageContext);
  //设定contentDisposition为null以禁止浏览器自动打开文件,
  //保证点击链接后是下载文件。若不设定,则下载的文件扩展名为
  //doc时,浏览器将自动用word打开它。扩展名为pdf时,
  //浏览器将用acrobat打开。
  su.setContentDisposition(null);
  //下载文件  
  //{{
  //如果不用如下的,则response.getWriter(),因为这个方法是和response.getOutputStream()相冲突
  //html这样的文档不能下载。
  out.clear();
  out = pageContext.pushBody();
  //}}
   
  String oFileName = new String(szHref.getBytes("gb2312"),"iso8859-1");  
  su.downloadFile(path+"\\DB\\UpLoad\\"+szHref,null,oFileName);


第二种方法 也不行。

 //关于文件下载时采用文件流输出的方式处理:  
   
  response.reset();//可以加也可以不加  
  response.setContentType("application/x-download");  
   
String filedownload = "文件的物理路径+文件名";  
String filedisplay = "下载文件名";  
   
  response.addHeader("Content-Disposition","attachment;filename=" + filedisplay);  
   
  java.io.OutputStream outp = null;  
  java.io.FileInputStream in = null;  
  try  
  {  
  outp = response.getOutputStream();  
  in = new FileInputStream(filenamedownload);  
   
  byte[] b = new byte[1024];  
  int i = 0;  
   
  while((i = in.read(b)) > 0)  
  {  
  outp.write(b, 0, i);  
  }  
   
outp.flush();  
   
out.clear();  
out = pageContext.pushBody();  
}  
  catch(Exception e)  
  {  
  System.out.println("Error!");  
  e.printStackTrace();  
  }  
  finally  
  {  
  if(in != null)  
  {  
  in.close();  
  in = null;  
  }  
//这里不能关闭  
//if(outp != null)  
  //{  
  //outp.close();  
  //outp = null;  
  //}  
  }  


快崩溃了,网上找了很多资料,按着他们说的都不行啊。。谢谢大虾们之招啊

鱼小儿的主页 鱼小儿 | 初学一级 | 园豆:150
提问于:2010-08-20 12:23
< >
分享
所有回答(2)
0

真是各有所需呀,还有人正好想要你的效果呢。

Astar | 园豆:40805 (高人七级) | 2010-08-21 09:29
0

response.setContentType("application/octet-stream");  

 

“application/octet-stream” 这个文件MIME写正确 试试

慧☆星 | 园豆:5722 (大侠五级) | 2010-09-01 15:50
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册