日期:2014-05-17  浏览次数:20911 次

用struts2写的文件下载迅雷显示的文件后缀名是action???!!!
使用struts2写了一个文件下在的Action结果下点击文件下载的时候,迅雷弹出的下载框中显示的文件名为那个处理下载的Action,而用IE下载的时候文件名显示是正常的。
请问这是什么原因,有什么办法可以解决?

------解决方案--------------------
你需要处理下乱码问题 


------解决方案--------------------
继续下载,不能正确解析文件吗?
------解决方案--------------------
没,好比我现在下载的文件名是demo.doc但是我点击下载按钮时,那下载的文件名称变成了我的action的方法名称。xxx.action这样的文件名称,我用IE可以正常下载文件,名称也是正确的。如果谁知道,希望给我一个解决的思路,我现在很急。
------解决方案--------------------
引用:
使用struts2写了一个文件下在的Action结果下点击文件下载的时候,迅雷弹出的下载框中显示的文件名为那个处理下载的Action,而用IE下载的时候文件名显示是正常的。
请问这是什么原因,有什么办法可以解决?


下载下来后就是文件名称了,主要下载action的配置文件中的attachment; filename这个2个有关
attachment用了这个配置就会触发下载工具,不要就可以了
filename是下载文件的名称也可以配置的

------解决方案--------------------
我的这个错误就是在讯雷那文件名称那显示不正确,我下载下来的文件都是正确名称,而且可以打开。
------解决方案--------------------
这是我那action里面的方法
  /**
   * 下载附件方法
   */
  public String upLoadDow(){

  HttpServletRequest request = ServletActionContext.getRequest();
  HttpServletResponse response = ServletActionContext.getResponse();
  InputStream in = null;
  OutputStream os = null;
  try{
  String path = request.getParameter("path");
  System.out.println(path);
  path = new String(path.getBytes("iso-8859-1"),"UTF-8");
  File file = new File(path);
  try{
  in = new FileInputStream(file);
  os = response.getOutputStream();
  }catch(FileNotFoundException ex){
  ex.printStackTrace();
  }
  response.setContentType("application/octet-stream; charset=UTF-8");
  response.addHeader("Content-Disposition", "attachment; filename=" + new String(path.split("//")[1].getBytes("gb2312"),"ISO-8859-1"));
  int data = 0;
  while((data = in.read()) != -1){
  os.write(data);
  }
  }catch(Exception ex){
 // ex.printStackTrace();
  }finally{
  try {
os.close();
in.close();
} catch (IOException e) {
// TODO Auto-generated catch block
System.out.println("bbbbbb----------------");
e.printStackTrace();
}

  }
  return null; 
  }
------解决方案--------------------
你试着可以在程序里给你下文件命名,没试过,,不知道可不可以
------解决方案--------------------
你试着可以在程序里给你下文件命名,没试过,,不知道可不可以
------解决方案--------------------
其他大网站都是这样的啊,去新浪ishare下载首歌,迅雷下载显示是.php啊,不是.mp3
------解决方案--------------------
为了积分
------解决方案--------------------
真的不能解决吗?
------解决方案--------------------