我在前面使用angular js,在后端使用spring boot。我成功将图像上传到我的数据库,并将其放置在本地文件夹中。我的问题是当我想使用ng-src angular js显示此图像时出现此错误:
Not allowed to load local resource: C:/Users/Public/Pictures/5ecece06-5306-4743-a003-1590e202a000-original.jpeg
我把图像放到公用文件夹中,得到的错误相同。 这是我的网络服务:
kioskHotelCode: "ABRH",
countryName:“测试测试”, 网址:null, hotelImage:“ C:/Users/Public/Pictures/5ecece06-5306-4743-a003-1590e202a000-original.jpeg”,
我也尝试添加文件:///:
<img alt="here should be an image"
ng-src =“ file:/// C:/Users/Public/Pictures/5ecece06-5306-4743-a003-1590e202a000-original.jpeg” width =“ 100” height =“ 90”>
这也是我后端的Web服务:
@RequestMapping(value = "/sid", method = RequestMethod.GET, produces = MediaType.IMAGE_JPEG_VALUE)
public ResponseEntity<byte[]> getImage() throws IOException {
ClassPathResource imgFile = new ClassPathResource(uploadsDir);
byte[] bytes = StreamUtils.copyToByteArray(imgFile.getInputStream());
return ResponseEntity.ok().contentType(MediaType.IMAGE_JPEG).body(bytes);
}
但它是相同的错误,我正在用谷歌浏览器进行测试,但没有找到解决方案。我的问题是解决这个问题的最佳方法?以及我应该在哪里放置动态图像(我想用户可以更改它)?
感谢您的帮助。
答案 0 :(得分:0)
您不应使用本地图像,因为在发布应用程序时,其他浏览器客户端无法看到此图像。 试试这个https://www.baeldung.com/spring-mvc-static-resources
答案 1 :(得分:0)
将图像放置在该Spring webapp的上下文路径中,然后从该位置检索图像。
如果图像在:
WEB-INF/IMG/image.jpg
您可以将其检索为:
IMG/image.jpg
如果要使其动态化,相同的位置将起作用