我正在MVC Rest api使用Spring Boot, Hibernate,编写在线商店PostgreSQL。我需要有货物的照片。因此,从这里的一个问题一般来说它是如何实现的?将图片直接存储在数据库中的选项将不起作用,因此我决定将指向我硬盘上的照片的链接存储在数据库中。但是如何在代码中实现这一切呢?事实证明,Entity我有一个 type 的字段String?
爪哇:
private String image;
SQL:
alter table drink add column image varchar;
并在带有照片链接(路径)的数据库列中?在这种情况下,如何在客户端显示图像,因为给我的不是照片,而是链接?原来你需要写一个方法,在输出之前通过引用找到文件并显示出来?但是怎么做?
我推荐第三种选择 - 它更容易。
您可以将文件以Base64格式存储在数据库中,字符串也可以,只是很长。这种字符串的字节大小将大于图片本身的大小。要访问此类图片,您需要
endpoint编写:应该存储在数据库中的字符串(即格式中的图片
Base64)应该如下所示:在客户端,我们使用javascript获取图像:
请参阅:如何在 HTML 中显示 Base64 图像?
如果您将文件存储在磁盘上的文件夹中,您还需要
endpoint访问它们。在服务器上:从数据库中获取文件的路径,从接收到的路径中读取文件并返回字节数组:请参阅:如何发布图片?
在客户端:
您可以将这些文件添加到项目资源中,添加到文件夹
src/main/webapp中,然后将它们与 Web 应用程序一起上传。在客户端,图像的路径(相对于该文件夹)将如下所示: