编码中,由于失误监听器的注解忘记开启,以至于导致取到的basePath为null(即文件存储的绝对路径)
图1

图2

但是文件上传写入未报错,说明文件确实被上传到了一个物理路径
image.png

经查找,发现这个‘null’目录是tomcat\bin下面的子目录

image.png

web应用是由tomcat来执行的,tomcat这个程序是从哪里启动文件是startup.bat,位置是tomcat/bin。

某贴看到的一段评论:
"你写路径的时候肯定是这么写的吧:new File("a.txt");
你用的是相对路径,这样写的话会将a.txt生成在当前程序的目录。这里的当前程序是指tomcat。
而你的tomcat肯定是通过bin目录下的startup.bat或者tomcat5.exe运行的,所以你的当前目录就是那个bin目录。"

Q.E.D.

知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议

如人饮水、冷暖自知