我目前正在调试一个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)" )。
对我来说一切似乎都没问题,因为文件夹应该是它的位置,路径似乎也很好。
有什么想法吗?
答案 0 :(得分:3)
VAR / LIB / Tomcat的/ web应用/原型/ RES /温度/ temp0.jpg
你忘记了第一个'/',所以路径理解为相对路径,而不是绝对路径。
/var/lib/tomcat/webapps/prototype/res/temp/temp0.jpg