zoukankan      html  css  js  c++  java
  • 文件上传路径转虚拟路径

    传统方式:文件上传路径放在项目目录之下/WebRoot/WEB-INF下,这个目录是从外部的客户端通过URL是无法访问的,所以文件也是相对比较安全的。但是这样对于部署有一个很大的问题,就是将打包好的war包放到tomcat中之后,原先/WebRoot/WEB-INF下的上传文件全都被覆盖了,导致文件全部丢失,这样每次部署的时候都很麻烦。

    通过在tomcat安装目录中的conf文件夹下的server.xml文件中配置一个新的context内容,这个标签添加在host标签之内。

    <Context docBase="D: est" path="/test" reloadable="true"/>

    其中docBase表示的是实际的保存地址,path表示的是在tomcat中的路径标识,同时可以在java后台中使用这个配置好的path访问实际的地址,而因为这个实际地址可以是不在项目之内的,这样就可以避免每次部署的时候文件丢失的问题。

    同时假设D: est下有一个a.txt,由于配置的path变量,则可以用过localhost:8080/test/a.txt访问到。所以这种方式没有传统方式安全,不过可以通过给文件加上唯一的id前缀避免因为URL太过简单而被外部访问。

    eg:

    配置<Context path="/cul" docBase="C:/xy_cul" reloadable="true"/>后:

    http://localhost:8080/rul=C:/xy_cul

    用这个地址就可以访问图片了:

    http://localhost:8080/rul/file/jpg/2020/2020-01/5hNc6Mhufvm5nRak1NlzQLPhdGl6r0BmmLzCkdgLArE9NhjLQIGIcBLiufHQggnI/a.jpg

    注意:设置的docBase对应的实际目录一点要存在,如果不存在,那么tomcat启动时就会出现闪退。因为有的项目可能是通过项目生成目录,这个时候就有可能出现启动tomcat时实际的地址还不存在,这样就会无法启动闪退。
    ————————————————
    版权声明:本文为CSDN博主「baowei_0915」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/baowei_0915/article/details/80645752

  • 相关阅读:
    用例要素(非原创)
    边界接口设计
    项目管理平台架构
    内外网邮件自动转发
    Python技术公众号100天了
    将博客搬至CSDN
    Android项目真的要去做混淆(加密)处理
    【转】Android Gson的使用
    【转】在eclipse上使用Git
    在AChartEngine上绘图,手指标记当前位置
  • 原文地址:https://www.cnblogs.com/fxx5/p/12156292.html
Copyright © 2011-2022 走看看