无法将文件保存在linux服务器上运行的tomcat webapp中

时间:2014-04-25 08:29:32

标签: java linux tomcat web-applications

我目前正在调试一个webapp ,用户应该上传一个文件,然后将该文件临时存储在服务器上并通过电子邮件发送给管理员。

该应用程序在Linux服务器环境中的 tomcat 8上运行。发生错误的类如下所示:

@Service
public class BugReportBo implements IBugReportBo {

  ...

  @Value("${app.temp.folder}")
  private Resource temp;

  ...

  private File byteArrayToFile(final byte[] lob, final String string) throws IOException {
    final int locatorStartPos = 6;
    String uri = temp.getURI().toString().substring(locatorStartPos);

    //uri: var/lib/tomcat/webapps/prototype/res/temp/
    //string: temp0.jpg

    // convert array of bytes into file
    File f = new File(uri + string);
    FileOutputStream fileOuputStream = new FileOutputStream(uri + string);
    fileOuputStream.write(lob);
    fileOuputStream.close();
    return f;
  }
}

错误来自FileOutputStream fileOuputStream = new FileOutputStream(uri + string);

异常是 FileNotFoundException (消息:" var / lib / tomcat / webapps / prototype / res / temp / temp0.jpg(Datei oder Verzeichnis nicht gefunden)" )。

对我来说一切似乎都没问题,因为文件夹应该是它的位置,路径似乎也很好。

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

  

VAR / LIB / Tomcat的/ web应用/原型/ RES /温度/ temp0.jpg

你忘记了第一个'/',所以路径理解为相对路径,而不是绝对路径。

  

/var/lib/tomcat/webapps/prototype/res/temp/temp0.jpg