当前位置:   article > 正文

tomcat配置需求路径,防止发布丢失上传文件_tomcat 文件默认上传相对路径

tomcat 文件默认上传相对路径

好记星不如烂笔头,这里记录平时工作中用到的东西,不喜可以留言。

目录

1:配置tomcat设置访问上传文件路径

2: 百度UEditor 上传组件 使用虚拟路径映射配置【方法不好侵染代码】

3: 其他解决办法说明


java单体项目上传文件都会放到类似 "D:\server\tomcat 8.5.8081\webapps\projectname\upload"的一个目录,放置上传的文件。但是多人发布或者使用自动化部署工具经常误操作或者忘记备份upload文件夹导致上传的图片、资料、视频等丢失;

其实目前来说,除了放到tomcat里面,还可以放到 ftp、oss、fastdfs 等各种存储和应用分离的地方。

这里是通过tomcat配置,可以解决小型项目单体服务器分布式处理上传文件的痛点。

1:配置tomcat设置访问上传文件路径

a: 我们通过tomcat配置,把原来的上传文件放到项目内部的目录映射到tomcat外部,如 类似”D:\server\projectnameUploadRoot\upload“。

b:注意目录需要提前创建好, 否则可能tomcat启动失败

c:需要修改配置文件是:D:\server\tomcat 8.5.8081\conf\server.xml

tomcat/conf/server.xml配置上传虚目录

  1. <!--代码片段,具体自己修改tomcat/cong/server.xml中的<Host节点把-->
  2. <!--path是http请求地址,docBase是操作系统文件路径(相对、绝对都可以)-->
  3. <Context docBase="../../hiberUploadRoot/upload" path="/hiber/upload/"/>
  4. <Context docBase="E:\picture\upload" path="/hiber/upload/"/>
  5. <Context docBase="/Users/hiberUploadRoot/upload" path="/hiber/upload/"/>

2: 百度UEditor 上传组件 使用虚拟路径映射配置【方法不好侵染代码】

解决ueditor上传文件到tomcat虚拟路径等问题【【好】】

第一步里面设置了映射目录,发现百度UEditor还是不行,看源码为啥。

UeEditor处理上传的webapp/ueditor/jsp/controller.jsp

UEditor设置后台controller的地方

3: 其他解决办法说明

A: 写个互备的bat/powershell脚本 在windows下任务计划每天不定时的去执行 或者使用shell 实时同步目录

B: LemonOa上传的文件都在webapp外边,就是下载显示需要实现一个controller。具体是
LemonOA目前就是定义了一个参数store.baseDir作为所有附件的根目录,然后读取都以这个目录为根,不同模块使用不同前缀区分,目录采用时间+uuid的方式避免重复,数据库里保存相对路径和文件名等元数据。
对,上传没有什么区别,但是下载和显示时需要controller,所以比放在webapp里麻烦
如果想做得更好,下载和显示时,还要处理fileName和content-type,所以工作量会多一些

C: linux/windows 实时同步目录,项目中已经实践,参见自己的博客-检测目录、文件夹实时

D: 使用其他云存储,比如 aliyun OSS(按量特别便宜)、FastDFS、MinIo、Ftp、windows SMB协议【契约锁老版文件服务器】等

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号