文件上传到服务器目录

时间:2012-11-19 05:20:57

标签: java file-upload struts

我正在将一个excel文件上传到tomcat服务器。哪个保存在我的eclipse目录D:\workspace_Eclipse\.metadata\.plugins\org.eclipse.wst.server.core\tmp1\wtpwebapps\StatusPortal\Job_doc\abc.xls

当我访问此文件时,我找不到文件Exception \Job_doc\abc.xls。  它无法找到我在访问文件时给出的路径,如       \Job_doc\abc.xls

我在访问时提供路径\Job_doc\abc.xls

2 个答案:

答案 0 :(得分:0)

尝试使用ClassLoader阅读您的文件,如下所示:

   InputStream inputStream = 
          getClass().getClassLoader().getResourceAsStream("/Job_doc/abc.xls");
   BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream ));

如果您想获取File对象,请尝试以下操作:

  URI uri = getClass().getClassLoader().getResource("/Job_doc/abc.xls").toURI();
  File file = new File(uri);

答案 1 :(得分:0)

这是因为您使用的是相对路径。 Eclipse将使用当前工作目录作为部署webapp的临时位置。因此,文件被上传到相对于此路径的文件夹(当您从eclipse Run On Server启动应用程序时会发生这种情况。将路径定义为静态常量(可能您可以使用绝对路径进行测试)。经过测试,您可以使用生产部署的相对路径。

不过,你可以采取其他方式。不要使用Eclipse的集成tomcat服务器。使用独立服务器,使用描述符文件将工作区中的webapp链接到tomcat。保存之后,只需在tomcat管理器中重新加载应用程序并尝试。