Tomcat文件上传路径问题
2015-12-03 12:10
381 查看
原文地址 http://www.zhihaoyu.com/article/69
之前我将上传的文件直接放在项目路径下
String root = ServletActionContext.getServletContext().getRealPath("/res");
这样的话在每次更新war包到tomcat的时候都会删除掉用户上传的文件,总不能每次更新时都用复制粘贴。
将文件上传路径分开无非是需要注意两个地方:
首先,用户访问资源url时,需要将用户访问地址关联到tomcat项目路径外的地址。
其次,文件写入的时候保存路径要变成相应的实际地址。
那么问题就好解决了:
更改tomcat 目录下的 service.xml配置文件,增加虚拟路径配置
当访问 http://localhost:8080/MyPlatform/photo/xxx.jpg或者是http://localhost:8080/MyPlatform/works/xxx.jar 的时候,tomcat就会把请求转发,去请求tomcat所在的物理机上的D盘下/usr/local/tomcat/res/photo下的文件.
接下来,文件写入,只需要把保存路径改了就行了
String root = ServletActionContext.getServletContext().getRealPath("../../res");
说到上传文件,对于我这种小型网站项目,把文件放在服务器磁盘,路径保存在数据库,另外只要注意处理文件命名,也不会出现重名覆盖的情况。
之前我将上传的文件直接放在项目路径下
String root = ServletActionContext.getServletContext().getRealPath("/res");
这样的话在每次更新war包到tomcat的时候都会删除掉用户上传的文件,总不能每次更新时都用复制粘贴。
将文件上传路径分开无非是需要注意两个地方:
首先,用户访问资源url时,需要将用户访问地址关联到tomcat项目路径外的地址。
其次,文件写入的时候保存路径要变成相应的实际地址。
那么问题就好解决了:
更改tomcat 目录下的 service.xml配置文件,增加虚拟路径配置
当访问 http://localhost:8080/MyPlatform/photo/xxx.jpg或者是http://localhost:8080/MyPlatform/works/xxx.jar 的时候,tomcat就会把请求转发,去请求tomcat所在的物理机上的D盘下/usr/local/tomcat/res/photo下的文件.
接下来,文件写入,只需要把保存路径改了就行了
String root = ServletActionContext.getServletContext().getRealPath("../../res");
说到上传文件,对于我这种小型网站项目,把文件放在服务器磁盘,路径保存在数据库,另外只要注意处理文件命名,也不会出现重名覆盖的情况。
相关文章推荐
- Tomcat 常用配置
- tomcat配置文件server.xml详解
- myeclipse启动tomcat速度慢的问题
- 用tomcat发布javaweb项目
- linux 下tomcat web服务器相关
- Tomcat以指定JDK运行
- MyEclipse配置Tomcat
- Linux环境下为Tomcat安装APR
- Nginx + Tomcat 动静分离实现负载均衡
- 基于Tomcat7、Java、WebSocket的服务器推送聊天室
- tomcat启动startup后,一闪而过
- Tomcat 详解
- linux Tomcat restart脚本简单版
- (1) 基于tomcat7和jdk1.7的websocket启动
- Tomcat负载均衡安装与配置 +负载均衡Apache
- Tomcat8源码分析(一)
- tomcat去掉项目名称
- 配置(更改)tomcat的端口
- tomcat服务器发布网站的方式小结
- myeclipse中tomcat配置步骤