Tomcat访问本地磁盘文件

上传文件后很多种保存方式,其中一种就是将上传的文件保存在某个磁盘的文件夹中

这样子既不会给tomcat造成压力也不会给数据库造成压力

但是有一个问题就是web项目读取的问题。所以可以通过配置tomcat虚拟路径来读取。

添加虚拟路径配置访问

假如把上传文件放到  E:\source\attachments 这个文件夹中

1、打开 tomcat/conf/server.xml 配置文件,在之间加入下面代码:

       Debug: 则是设定debug level,  0表示提供最少的信息,9表示提供最多的信息

       docBase:表示自己本地磁盘绝对路径

       path:表示自己指定一个jsp访问的路径

关于 context 配置属性详见官网: http://tomcat.apache.org/tomcat-7.0-doc/config/context.html

crossContext

true如果希望此应用程序中的调用ServletContext.getContext()成功返回在此虚拟主机上运行的其他Web应用程序的请求调度程序,则设置为。false在安全意识环境中设置为(默认值),以便getContext()始终返回null

docBase

此Web应用程序的文档库(也称为上下文根)目录,或Web应用程序归档文件的路径名(如果此Web应用程序直接从WAR文件执行)。您可以为此目录或WAR文件指定绝对路径名,或者指定appBase与拥有主机的目录相关的路径名。

除非在server.xml中定义了Context元素或者docBase不在Host的下面,否则不能设置此字段的值appBase

如果符号链接用于docBase,则对符号链接的更改仅在Tomcat重新启动或取消部署和重新部署上下文后才有效。上下文重新加载是不够的

path

此Web应用程序的上下文路径,与每个请求URI的开头匹配,以选择适当的Web应用程序进行处理。特定主机中的所有上下文路径必须是唯一的。如果指定空字符串(“”)的上下文路径,则表示您正在为此主机定义默认 Web应用程序,该应用程序将处理未分配给其他上下文的所有请求。

只有在server.xml中静态定义Context时,才能使用此属性。在所有其他情况下,将从用于.xml上下文文件或docBase的文件名推断出该路径。

即使在server.xml中静态定义Context,也不能设置此属性,除非docBase不在 Host的下面appBase或两者都是, deployOnStartup并且autoDeploy为false。如果未遵循此规则,则可能会导致双重部署。

reloadable

设置为true如果您希望Catalina监视更改类 /WEB-INF/classes//WEB-INF/lib更改,并在检测到更改时自动重新加载Web应用程序。此功能在应用程序开发期间非常有用,但它需要大量的运行时开销,不建议在部署的生产应用程序上使用。这就是为什么此属性的默认设置为false。但是,您可以使用Manager Web应用程序按需触发已部署应用程序的重新加载。

2、当 jsp 页面要访问时,使用 path路径 + 文件相对路径 即可:

文件无法加载

   image/word.jpg  可以是数据库存放的文件相对路径。

 

更多配置参考文件:https://www.cnblogs.com/jingyunyb/p/3647945.html


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部