String uploadDir = getServletContext().getRealPath("/") + "upload";  // 获得服务器的绝对路径

解决方案 »

  1.   

    String uploadDir = getServletContext().getRealPath("/") + "upload";  // 获得服务器的绝对路径
      

  2.   

    在写java程序时不可避免要获取文件的路径...总结一下:
     
    1.可以在servlet的init方法里
    String path = getServletContext().getRealPath("/");
    这将获取web项目的全路径
    例如 :E:\eclipseM9\workspace\tree\
    tree是我web项目的根目录
     
    2.你也可以随时在任意的class里调用
    this.getClass().getClassLoader().getResource("/").getPath();
    这将获取 到classes目录的全路径
    例如 : E:\eclipseM9/workspace/tree/WEB-INF/classes/
     
    这个方法也可以不在web环境里确定路径,比较好用
     
    3.request.getContextPath();
    获得web根的上下文环境
    如 /tree
    tree是我的web项目的root context
      

  3.   

    我主要是在WEB上用,但楼上的这种获得WEB上的路径对于上传路径好像行不通吧,我感觉对于上传路径用本地的路径还可以,但用WEB上的相对项目名就似乎行不通了。
      

  4.   

     su.save("/upload"); 
    这个就是你想要的相对路径,你试试,不好用在说
      

  5.   

    楼主,给你一个建议,先去认识一下上传问题,也就是最基本的东西,关于那几个包,可以先认识一下API,还有可以看看Google之类的吧,到时候,你就会知道,其实路径,可以自己设定,可以取得,当然,给出的方式有好几种,无非就是最常用的哪几种,你去看看API,里面几乎都有说明,
    呵呵,希望解决问题。
      

  6.   

    上传方面的知识我懂,平时我看一些例子,这些例子里对于上传的处理都是直接写在JSP页面的,所以它可以轻松的获取相对这些JSP页面的上传的路径。可是,如果把这些上传的代码放在封装类里面,那它应该怎样获取上传路径啊?Aa(项目名) 
      src 
        cn.aa.servlet 
          UploadServlet.java(这是一个servlet) 
      …… 
      WebRoot 
        upload(文件夹) 
        …… 
        WEB-INF 
        index.jsp 
    对于在封装类里(其实也就是Servlet里),我平时一直都是通过System.getProperty("user.dir")这种方法获取当前服务器所在的磁盘路径,也就是绝对路径了,如:D:/java/tomcat6.0.18/Aa/upload/(其中tree是项目名)。可以,如果不用这种方法,而是su.save("http://localhost:8080/tree/upload"),可这种为什么就不行呢? 
      

  7.   

    你的UploadServlet.java这个servlet是如何配置的呢?它的url-pattern是什么?