我有一个 Maven/Spring/Java 应用程序,允许用户在其中下载文件。这是我的应用程序的目录结构。
src
main
java
com
mycompany
controller
MyDownloadController
resources
downloads
MyDocument.docx
这是下载文件的控制器代码。
File file = new File("src/main/resources/downloads/MyDocument.docx");
response.setContentType("application/docx");
response.setContentLength((int) file.length());
response.setHeader("Content-Disposition", "attachment; filename=\"MyDocument.docx\"");
DataInputStream inputStream = new DataInputStream(new FileInputStream(file));
ServletOutputStream outputStream = response.getOutputStream();
int length = 0;
byte[] byteBuffer = new byte[4096];
while ((inputStream != null) && ((length = inputStream.read(byteBuffer)) != -1)) {
outputStream.write(byteBuffer, 0, length);
}
inputStream.close();
outputStream.close();
在本地 Tomcat 服务器上一切正常。但是当我尝试上传到服务器(Jelastic)时,我得到一个 500 错误java.io.FileNotFoundException: src/main/resources/downloads/MyDocument.docx (No such file or directory)
。
我查看了服务器上的 Tomcat 目录,文件就在那里(没有为公司隐私截取实际文件)。
我猜这与类路径或其他东西有关。但我不知道我到底需要更新什么或如何更新。