在网上看了许多博客,但是试了很多次才弄对,这里进行总结一下在springboot中的使用.
前提:我将本地文件的路径保存在数据库,然后下载文件时,直接点a标签去下载文件。出现报错的情况。(没有将文件直接上传到服务端,只传了文件的路径到服务器,然后保存到数据库。这里只是测试一下,才这么做)
在前端直接进行本地文件下载(即下载的url为文件的本地绝对路径),会报错本地文件不能下载。为了解决这个问题可以用虚拟目录来解决。
后端需要配置:(这里时springboot的配置,因为它内置tomcat,不能直接操作,如果不是springboot可以参考下面的网址)
@Configuration
public class WebMvcConfig extends WebMvcConfigurerAdapter {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
/**
* 资源映射路径
* addResourceHandler:访问映射路径
* addResourceLocations:资源绝对路径
*/
registry.addResourceHandler("/img2/**")
.addResourceLocations("file:C:/Users/zck/Desktop/新建文件夹/");//注意,这里要加file
}
}
这里的file:C:/Users/zck/Desktop/新建文件夹/ 这个目录是你本地的目录
/img2/**这里的img2是你创建的虚拟目录
如果你的本地有一个文件a.txt的绝对路径是C:/Users/zck/Desktop/新建文件夹/a.txt 需要被下载
在后台则按照上面的配置。
然后下载时的url采用的url为img2/a.txt,这里的/img2/a.txt相当于是在访问C:/Users/zck/Desktop/新建文件夹/a.txt