java项目传统的上传文件都会放到工程根目录建一个文件夹,放置上传的文件,但是多人发布或者使用自动化部署工具经常误操作或者忘记备份upload文件夹导致上传的图片、资料、视频等丢失;
1:传统的直接放上传文件到工程跟目录访问特别方便,但是服务器访问路径+文件的存放的相对路径就可以
<Context path="/safety/upload/" docBase="/Users/duandazhi/Desktop/"></Context> <!-- docBase可以是相对目录,相对目录是相对appBase --> <Context path="/safety/upload/" docBase="../safetyUploadRoot/upload"></Context> 和webapp同目录,ueditor也在upload目录下面 注意上面的两个目录要提交建好,否则可能tomcat启动失败 2:写个互备的bat脚本 在windows下任务计划每天不定时的去执行 3:LemonOa上传的文件都在webapp外边,就是下载显示需要实现一个controller LemonOA目前就是定义了一个参数store.baseDir作为所有附件的根目录,然后读取都以这个目录为根,不同模块使用不同前缀区分,目录采用时间+uuid的方式避免重复,数据库里保存相对路径和文件名等元数据。 对,上传没有什么区别,但是下载和显示时需要controller,所以比放在webapp里麻烦 如果想做得更好,下载和显示时,还要处理fileName和content-type,所以工作量会多一些
;但是操作tomcat不谨慎在发布的时候容易丢失数据;
解决方法(在tomcat进行配置):
blog1(Tomcat配置虚拟路径,使上传文件与服务器及工程文件分离开)
blog 2 http://blog.csdn.net/j080624/article/details/54923785
blog3: javaweb上传文件时在tomcat配置虚拟路径
blog4: http://www.cnblogs.com/love540376/p/4999616.html
百度UEditor 上传组件 使用虚拟路径映射配置【方法不好侵染代码】
解决ueditor上传文件到tomcat虚拟路径等问题【【好】】
Context path="/safety/upload/" docBase="/Users/duandazhi/Desktop/"></Context> <!-- docBase可以是相对目录,相对目录是相对appBase --> <Context path="/safety/upload/" docBase="../safetyUploadRoot/upload"></Context> 和webapp同目录,ueditor也在upload目录下面 注意上面的两个目录要提交建好,否则可能tomcat启动失败 2:写个互备的bat脚本 在windows下任务计划每天不定时的去执行 3:LemonOa上传的文件都在webapp外边,就是下载显示需要实现一个controller LemonOA目前就是定义了一个参数store.baseDir作为所有附件的根目录,然后读取都以这个目录为根,不同模块使用不同前缀区分,目录采用时间+uuid的方式避免重复,数据库里保存相对路径和文件名等元数据。 对,上传没有什么区别,但是下载和显示时需要controller,所以比放在webapp里麻烦 如果想做得更好,下载和显示时,还要处理fileName和content-type,所以工作量会多一些