在写上传小练习的时候,发现获得路径的request.getRealPath("")已经被画上线了,也就是不再建议使用.
package controller; import javax.servlet.http.HttpServletRequest; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.multipart.MultipartFile; @Controller public class UploadController { @RequestMapping("upload.do") public String upload(HttpServletRequest request, String userName, @RequestParam(value = "file") MultipartFile file) { String upload_path1 = request.getRealPath("upload"); System.out.println(upload_path1); return "index"; } }
虽然最后也能得到正确的结果,D:\Program Files\apache-tomcat-8.5.24\webapps\upload\upload
但是既然已经不再建议使用,那就要在以后的项目里避免使用,这里给出两个替代的方法:
String upload_path2 = request.getServletContext().getRealPath("upload");
String upload_path = request.getSession().getServletContext().getRealPath("upload");
输出结果相同: