uni-app图片读取只能从静态资源或者使用网络图片
如果想使用本地图片的话需要将路径映射到磁盘路径中去。这里我们在properties中写:
filePath=D:/temp/images/
spring.resources.static-locations=classpath:static/**spring.resources.static-locations=classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/,file:${filePath}
后台代码
@RequestMapping("getimg")
@ResponseBody
public String getimg(HttpServletRequest request,@RequestParam MultipartFile file){
//获取图片名称
String fname = file.getOriginalFilename();
//获取图片名称后缀 .png 或 .jpg
String[] split = fname.split("\\.");
//图片存储路径 Linux注意不能带冒号:
String filepath="D:\\temp\\images\\";
//↓没有横杠的uuid 自行百度
//String uuid = UtilTool.getUUid();
UUID uuid = UUID.randomUUID();
//随机文件名
String finalname=uuid + "." + split[1];
//最终路径
String finalpath=filepath+finalname;
try {
file.transferTo(new File(finalpath));
} catch (IOException e) {
e.printStackTrace();
}
return "http://"+request.getRemoteHost()+":"+request.getServerPort()+"/"+finalname;
}
链接格式如下
常见问题总结
1) 不可以将上传来的文件保存到项目地址中,即不可以保存在resource/static目录下,因为这样的话,及时上传成功,也需要重启整个项目才能够通过地址访问到该图片。换言之,target不会因为你上传了图片,就自动更新静态资源。
2) 配置文件中static-location后面配置的那些目录,就是localhost:8080可以直接访问的文件了,也就是说我们现在已经将磁盘的目录配置上了,那么我们存放在E:/Data/uploadFile文件夹中的任何文件就可以直接localhost:8080/文件名进行访问了。
看了这个大哥写的文章总结的 原文链接:https://blog.csdn.net/yiyexy/article/details/105016786