在我实现SpringMVC下载功能时出现了以下这样的问题:
十分不解为什么系统找不到指定的路径,因为同样的配置,基本上是模板代码
于是我在百度上搜索,最靠谱的答案是:
如果是在@Controller中是C:\Users\dengxuelong\Desktop\,这个路径不会是在webapp下,要获得webapp在磁盘上的位置要使用request.getSession().getServletContext().getRealPath(“/”)。 而在其它的普通类中就是当前项目在磁盘上的位置
结合我的情况使用的spring,是@controller。
//获取服务器中文件的真实路径
String realPath = servletContext.getRealPath("img");
realPath = realPath + File.separator + "1.jpg";
最终的原因还是在这路径这里,识别不出来img及以前的路径,而且在target/spring_mvc_ajax-1.0-SNAPSHOT/里有这个图片文件的存在
最后
解决办法:
在img前加上:‘/’
String realPath = servletContext.getRealPath("/img");