在web项目中经常有图片上传下载问题,常见的方式是将图片直接上传到项目目录下面的一个文件夹中,但是这样的话如果项目重新部署会把原来的覆盖掉,所以最好是上传到项目目录外的文件夹中,但是上传到项目目录外的文件夹的话web项目是访问不到的。
图片获取
获取问题可以借助tomcat的虚拟目录来解决,servlet.xml配置如下:
通过这种方式可以决绝上见面的问题。//项目的虚拟目录,在访问的时候不需要打项目名称直接 http:localhost/xx.action <Context path="" docBase="/etc/apache-tomcat-7.0.78/oil-management"debug="5" reloadable="true" crossContext="true"/> //图片的虚拟目录,在访问的时候是 http://localhost/imagex/xx.jpg <Context path="images" docBase="/etc/imagesUpload" reloadable="false" debug="0" ></Context>
上传问题:
如果web框架是spring mvc的话通过MultipartFile file 的 file.transfto(new File) 这种方式的话只能是存储到项目目录下的文件夹中,不能满足上面图片获取的需求,所以只能通过文件流的读写操作,fil.getInputStream(),然后new File(XX)写入到指定目录下。此时就和项目目录没关系了。