String path = request.getServletContext().getRealPath("/");
我现在的做法是通过上面这种方法取得路径,然后把上传的文件全部放到这个路径下去,
但我发现,如果我clean了一下tomcat,上面的那个目录下的文件就都被清空了,
我不希望发生这样的事情,所以想问一下大虾们,一般上传的文件,都保存在哪个目录下?
------解决思路----------------------
存放到tomcat之外去。找一个地方,不用存放在tomcat内
找个目录专门存放附件,方便附件的管理
------解决思路----------------------
path 使用绝对路径就可以了,可以把path设置为可配置项,方便管理
------解决思路----------------------
如果文件不是那么重要而且也不是很多的话可以考虑存在项目的目录下。
以下内容全为手写,仅供参考:
1、通过request.getSession().getServletContext()获取项目当前位置目录;
2、找到统一存放文件的目录;
3、使用OutputStream来写入文件流内容进行保存。
------解决思路----------------------
最好还是放项目下吧,好移动啊,就是不好测试,每次修改个东西,就clean掉了
------解决思路----------------------
个人建议你不要保存到项目中的目录,不然你每次重启服务,里面的文件都需要备份,挺麻烦的,你可以保存在磁盘里面,然后通过虚拟目录去取文件,具体可以到网哈桑找,tomcat配置虚拟目录~~~
------解决思路----------------------
按照楼上所述采用虚拟目录的形式进行保存,虚拟目录还有一个好处可以与远程目录进行关联。
------解决思路----------------------
最好配置在tomcat以外,用一个专门的目录(这个目录下面也可以再分其它目录),然后在tomat下面配置一个虚拟路径指向这个专门存放附件的目录
虚拟路径配置(给个方案,也有其它的配置方法)
在tomcat下的conf\Catalina\localhost下
加一个xml文件,比如叫做attaches.xml
然后文件内容为
<Context path="attaches" reloadable="true" docBase="F:\attaches" >
</Context>
这样我认为最主要的好处是,防止上传的文件丢失,方便备份转移