问题描述:
最近项目中有图片上传功能,主要遇到的问题是开始图片上传目录自动创建在服务应用下,如webapp下的upload,这样造成的结果是weblogic下每次重新部署项目是,之前上传的图片就会被删除掉。
方法:
虚拟路径(虚拟路径创建在服务应用下,但是它的逻辑指向是具体盘符下的某个物理路径下,比如D:/ImageUpload文件夹下)。
weblogic下虚拟路径介绍:
首先在weblogic.xml配置如下
<wls:context-root>maeip</wls:context-root> <wls:virtual-directory-mapping> <wls:local-path>D:/ImageUpload</wls:local-path> <wls:url-pattern>/*</wls:url-pattern> </wls:virtual-directory-mapping>
这里的url-pattern只能配置“/*”,不能配置“/upload/*”,原因是最前的“/”已经是虚拟路径下,所有再加上upload文件夹是没有效果的。
配置好虚拟路径的映射,基本上可以满足我们所有要求,如:
(1)我们在D:/ImageUpload文件夹可以创建一个upload文件夹存放我们上传的图片,访问路径为http://ip:port/contextpath/upload/001.jpg
(2)如果我们在D:/ImageUpload文件夹下创建盘符更深,如D:/ImageUpload/upload/201407,那么访问路径为http://ip:port/contextpath/upload/201407/001.jpg
我们主要解决的是weblogic下的虚拟路径配置,tomcat和jetty实现虚拟路径配置需要在本地配置相关容器,但是基于Eclipse+jetty插件如何配置虚拟路径目前没有找到解决方法,希望会的大师能交流下。
虚拟路径的创建也可以基于cmd命令创建,这样我们可以在我们的项目中实现集成式创建虚拟路径,项目启动时通过java代码执行cmd命令,创建虚拟路径。