最后一个问题,为什么我说,不要使用Jfinal默认提供的那个上传文件夹。 在平时的开发过程中,我有一次使用了默认的上传文件夹,后台工程重新部署的时候,我upload文件夹居然直接消失了。很奇怪对吧,其实后来我想过这个问题的原因。其实很简单,就是在同步工程的时候,IDE中的项目回去覆盖我们部署的在Tomcat文件夹下面的那个文件目录,在我们IDE中没有upload这个文件夹,而Tomcat中正好有这么一个文件夹,那么就直接覆盖,所以就找不到了。那么你可能回想,我直接在IDE里面建一个upload不就完了么,好吧,假如你建立,那么你数据库中存放的是你的存储路径,没错,他可能会正常运行,但是你有没有考虑,你的项目名称在E盘,你的部署服务器没有E盘,而你正好设置了你上传文件根路径在E盘,那么上传肯定会失败,因为物理上就没有可行性了!! 那么怎么做了?
很简单,把你的上传文件根路径放在和你项目同一级别的文件夹中(切记是你Tomcat部署的那个),这样的话 不管理项目怎么更新编号,你的上传文件夹都不会被覆盖掉!!,举个例子: 我的项目均部署在”d:/tomcat/webapp/projectA”,那么我的上传文件根路径就应该设置为“d:/tomcat/webapp/upload”,与projectA同一级,但是有同在WebApp下面,这样文件就能够正常访问了。我刚刚所说的这种问题只会出现在开发阶段,在正式部署以后,由于没有IDE的重新部署,所以不会发生,但是为了能够让你在开发阶段也能够安逸的完成上传操作,我的建议就是我刚刚说的那个。当然你可能有更好的方法,也欢迎你提出来。
再啰嗦一句。关于文件重命名的方法,就是你的文件名称要独一无二,防止冲突,其实这个已经不是什么大问题了,我们刚刚说过,上传的文件已经被放在你设置好的目录下面了,所以,你要做的就是找到你的文件路径,然后为该文件重命名,这个我想说啥了 基础,这个不会的话,我建议你去恶补一下java的IO库。命名文件的方式有很多比如UUID,时间戳,年月日时分秒+随机数,之类之类的只要能够达成唯一性这个指标就好。