我有一个带有注册表单的 Spring MVC 应用程序。这个表单有一张base64数据格式的图片。我想将这些数据存储在数据库中。目前我将 base64 数据存储在输入元素中。我对此有几个问题;
我应该在哪个 html 元素中保存 base64 数据,目前我正在使用输入元素,但是我在插入时遇到错误(Blob 是数据库和 Java 对象中使用的数据类型)-
无法将 java.lang.String 类型的属性值转换为属性照片所需的 java.sql.Blob 类型;嵌套异常是 java.lang.IllegalStateException:无法将类型 [java.lang.String] 的值转换为属性照片所需的类型 [java.sql.Blob]:找不到匹配的编辑器或转换策略
或者有没有办法在 java 中将字符串转换为 BLOB
即使数据是 base64,我是否仍然需要在表单标签上使用 enctype="multipart/form-data"?
如果 base64 数据存储在 html 文件元素中,我该如何执行验证以检查它是否为 NULL?
请您参考如下方法:
您可以使用 LobHelper
将其转换为 Blob
.您从 hibernate session 中获取 LobHelper Session.getLobHelper()
.
只要你没有 <input type="file" />
,应该不需要 enctype="multipart/form-data"。
验证应该像使用@NotNull 的普通字符串属性一样工作。
就我个人而言,我不会将其编码存储。