.doc类型的浏览器会自动识别的.

解决方案 »

  1.   

    public void downloadAction(ActionMapping mapping, ActionForm form,
    HttpServletRequest request, HttpServletResponse response) throws Exception { try
    {
    if (!request.getParameter("filename").toString().trim().equals(""))
    {
    String updown_path="D:\\DOWNLOAD";
    downLoad(updown_path+"\\"+request.getParameter("filename"),response,true);
    }
    }
    catch (Exception exp)
    {
    logger.error(exp);
    }
    }
    private void downLoad(String filePath,HttpServletResponse response,boolean isOnLine)
    throws Exception{
       File f = new File(filePath);
       if(!f.exists()){
    response.sendError(404,"File not found!");
    return;
    }
    BufferedInputStream br = new BufferedInputStream(new FileInputStream(f));
    byte[] buf = new byte[1024];
    int len = 0; response.reset(); //非常重要 if(isOnLine){ //在线打开方式 URL u = new URL("file:///"+filePath);

    response.setContentType(u.openConnection().getContentType());

    response.setHeader("Content-Disposition", "inline; filename="+URLEncoder.encode(f.getName(),"UTF-8") );
    //文件名应该编码成UTF-8
    }
    else{ //纯下载方式 response.setContentType("application/x-msdownload"); 
    response.setHeader("Content-Disposition", "attachment; filename=" + URLEncoder.encode(f.getName(),"UTF-8")); 
    }
    OutputStream out = response.getOutputStream();
    while((len = br.read(buf)) >0)
    out.write(buf,0,len);
    br.close();
    out.close();
    } 参考一下.