others/handbook.chm是相对路径的写法,但是请注意你在这里是将路径作为一个字符串传到bean中,对于不同的应用服务器编译servlet后对应的物理路径是不同的。
对tomcat来说默认指的$webapp$/others/handbook.chm
对weblogic来说默认指的$domain$/others/handbook.chm
不知你用的weblogic什么版本,各版本如下:
weblogic6.X->$bea$/wlserver6.X/others/handbook.chm
weblogic7.X->$bea$/user_projects/$your_domain$/others/handbook.chm
weblogic8.X->$bea$/user_projects/domains/$your_domain$/others/handbook.chm正常的上传方法:应使用JSP的application对象得到该相对路径的真实物理路径再上传或下载。

解决方案 »

  1.   

    请问poppop(光盘) :如何得到真实物理路径呢?
      

  2.   

    我现在handbook.chm是放在test.war下面的others下面,而test.war是放在
    /root/bea/user_projects/domains/mydomain/applications下面
    我应该怎么写这个相对路径呢?(或者绝对路径)
    ps:我用的是weblogic 8.1
      

  3.   

    上传目录不要部署在war里,可以指定拥有文件访问权限的任意位置(这个权限对unix下是很重要的)。
    怎样得到物理路径你看看下面代码:
    String path=MYCONST.ATTACHMENT_DIR+"/"+LoginSession.getUserId();//建立某用户的上传目录
    java.io.File iFile = new java.io.File(application.getRealPath(path));
    if(!iFile.exists()) iFile.mkdir();
    其中MYCONST.ATTACHMENT_DIR定义如下:
    public static final String ATTACHMENT_DIR = "upload/uploadfile";
    //注意application对象会将这个相对路径映射为"$your_webapp$/upload/uploadfile"
      

  4.   

    通过JSP对象application的getRealPath()得到的路径与应用服务器无关。