我需要在我的Spring MVC应用程序中读取MS-Excel(.xlsx),编辑它并按需将其发送给用户。在我的开发站本地,我使用
String path = "c:/dev/workspace/SCF-trend/web/WEB-INF/files/";
File template = new File(path + "trendline-template.xlsx");
但是一旦我部署了这个应用程序,我就放松了。
我该怎么做才能让应用程序了解路径?
我尝试使用ServletContext方法作为以下问题的答案,但它没有用。
Spring MVC Get file under WEB-INF without a request
我该如何解决这个问题?我们非常欢迎您的想法!
答案 0 :(得分:1)
如果它是一个webapp资源,只需通过ServletContext#getResourceAsStream()
将其作为webapp资源获取。
InputStream input = servletContext.getResourceAsStream("/WEB-INF/files/trendline-template.xlxs");
// ...
切勿在部署文件夹中使用java.io.File
和朋友。这是可移植性问题和灾难的秘诀。