我试了好多方法都不行,麻烦各位帮一下,谢谢~

解决方案 »

  1.   

     import   java.io.*;   
      import   javax.servlet.ServletException;   
      import   javax.servlet.http.*;   
      import   javax.servlet.RequestDispatcher;   
      import   java.util.ResourceBundle;   
        
      /**   
        *用于下载文件的servlet   
        *@vesion   1.0   
        */   
        public   class   DownloadFile   extends   HttpServlet   {   
        //字符编码   
        private   final   String   ENCODING="GB2312";   
        //内容类型   
        private   final   String   CONTENT_TYPE="text/html;charset=GB2312";   
        //要下载的文件存放的路径   
        private   String   downloadFileDir="download\\";   
              
        /**   
          *执行HTTP   get操作   
          *   @param   req   从用户来的请求   
          *   @param   resp   servlet的回应   
          */   
          public   void   doGet(HttpServletRequest   request,HttpServletResponse   response)   
          throws   ServletException,IOException{   
          //设置request对象的字符编码   
          request.setCharacterEncoding(ENCODING);   
          //从request   中取出要下载文件的名字   
          String   fileName=request.getParameter("filename");   
      if(fileName==null   ||   fileName.trim().equals("")){   
        //设置response对象ContentType   
        response.setContentType(CONTENT_TYPE);   
        //输出错误信息   
          PrintWriter   out=response.getWriter();   
          out.println("<font   color=red>输入的文件名无效!</font>");   
          out.close();   
          }   
          else{   
          //下载文件的完整路径名   
          String   fullFileName=downloadFileDir+fileName;   
          System.out.println("下载文件:"+fullFileName);    
                        //根据文件的类型设置response对象ContentType   
                        String   contentType   =getServletContext().getMimeType(fullFileName);   
                        if(contentType==null)   
                              contentType="application/octet-stream";   
      response.setContentType(contentType);   
                        response.setHeader("content-disposition","attachment;filename=\""+fileName+"\"");   
                        InputStream   is=null;   
                        OutputStream   os=null;   
                        try{   
                        is=new   BufferedInputStream(new   FileInputStream(fullFileName));   
                        //定义输出字节流   
                        java.io.ByteArrayOutputStream   baos=new   ByteArrayOutputStream();   
                        //定义response的输出流   
                        os   =new   BufferedOutputStream(response.getOutputStream());   
                        //定义buffer   
                        byte[]   buffer=new   byte[4*1024];//4k   Buffer   
                        int   read   =0;   
                        //从文件中读入数据并写到输出字节流中   
                        while   ((read=is.read(buffer))!=-1){   
                        baos.write(buffer,0,read);   
                        }   
                        //将输出字节流写到response的输出流中   
                        os.write(baos.toByteArray());   
                        }   
                        catch   (IOException   e){   
                        e.printStackTrace();   
                        }   
                        finally{   
                        //关闭输出字节流和response输出流   
                        os.close();   
                        is.close();   
                        }   
        }   
          
        }   
          public   void   doPost(HttpServletRequest   req,HttpServletResponse   resp)   
          throws   ServletException,IOException{   
          //调用doGet方法   
          doGet(req,resp);   
          }   
            
      }   
        
      

  2.   

    下载文件的路径?
    要下载的文件在你的磁盘上啊?你自己都不知道吗?
    application.getRealPath(".") 可以拿到当前的绝对路径
      

  3.   

    我用的是另存为下载保存,在strust中想获得想获得下载文件的路径
    application.getRealPath(".") 对我似乎没用~
      

  4.   

    应该是我没表达清楚,很抱歉!
    我用的链接下载,在strust中我想获得客户下载保存的路径,
    就是用户点击下载,在弹出的 另存为 对话框里选择了路径保存,我想获得的就是这个路径!
    我第一次弄这个,还想各位指教~