使用虚拟目录解决web项目图片资源上传及回显繁琐问题

2019-08-22 05:36:28  卢浮宫  阅读量:106  版权声明:本文为站长原创文章,转载请写明出处


一、问题出现背景

    今天改写了项目富文本编辑器,在做图片资源操作时遇到如下问题:

    ①文件保存位置选择--保存在服务器保存

    ②在项目文件内还是其他盘符内--独立保存

    ③文件保存在磁盘某处后得到其绝对位置,在浏览器中无法获取

二、解决问题思路分析

    ①保存在第三方服务器上--已在某牛申请了存储空间

    ②保存在项目文件中--当你打包成jar文件后文件获取繁琐

    ③保存在tomcat文件中--比上一个方案好,但是也不想采用

    ④保存在磁盘某个目录下--我使用了这种方案

三、操作流程

    ①上传文件到指定盘符下,eg:C:xa/imgs

    ②保存路径到数据库

    ③在页面中显示

四、友情提示:浏览器出于安全性考虑是不允许你直接读取磁盘文件的

    ①解决方案

        配置虚拟路径解决该问题

    ②方案释义

        假设你有一个本地文件,其路径为  C:\Users\XA\Desktop\\xa.jsg。浏览器出于安全考虑是不允许你的项目中直接访问的。

        我们可以把这个文件虚拟成系统文件,在程序中通过映射就可以直接访问了。

五、代码部分

@Configuration
public class MyWebAppConfiguration extends WebMvcConfigurerAdapter {
/**
* 添加一些虚拟路径的映射
* 静态资源路径和上传文件的路径
*
* @param registry
*/
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
/**
* 对文件的路径进行配置, 创建一个虚拟路径http://guangmuhua.com:9001/Path/** ,
* 即只要在< img src="/Path/picName.jpg" />便可以直接引用图片
*这是图片的物理路径 "file:/+本地图片的地址"
*/
registry.addResourceHandler("/Path/**").addResourceLocations("file:///C:/XAIMG/uploadfiles/");
super.addResourceHandlers(registry);
}
}


最新评论:
就是配置一个映射路径,在xml中都能搞定,何必写代码? 2019-08-26 18:36:44