SpringBoot映射URL访问本地文件
基本实现
实现WebMvcConfigurer 接口,重写addResourceHandlers方法即可实现。
参考代码如下:
1 | import org.springframework.beans.factory.annotation.Value; |
举例:
resourceHandler 配置为/files/**,accessFilePath配置为E:/files/。
那么页面请求 ip:端口/context-path/files/需要访问的文件,即可访问到本地磁盘E:/files/下面的同名文件。
特别注意:
- accessFilePath必须以"/"结尾,否则映射不到。
中文资源名称无法访问,英文名正常
解决办法一:重写configurePathMatch方法,UrlPathHelper设置不decodeurl
1 |
|
解决办法二:增加配置文件
1 | spring: |
这个方案适用于SpringBoot 2.6.+,而公司项目用的版本是2.7.+,使用上面的方法并没有生效。
文件预览-解决方案
由于访问服务器文件的方式不安全,且现在中文文件访问报错解决不了,最终重新写了一个文件下载接口,前端根据返回的文件流进行预览展示。
参考代码如下:
1 |
|
1 |
|