我想将一些数据(包括图像)作为JSON发送到休息服务,数据将存储在数据库中,然后我需要能够检索并显示回来。 我的问题是图像部分,我需要在json中发送它,将其转换为字节以将其保存为数据库中的blob,然后还原进程以将其显示回用户 当我得到图像源属性的值时,我得到类似这样的东西“data:image / png; base64,VBORw0 ....”我应该在服务器端做什么来保存在数据库中以及我在做什么时应该做什么我将它发回给用户,以便在将图像设置为源属性的值时显示图像
我现在在做什么 1.从src属性中获取img uri并删除URI的开头 markerImg.replace(/ ^ data:image /(png | jpg | jpeg); base64,/,“”); 2.然后我将结果作为完整的json对象的一部分发送。 3.在服务器端,我使用DatatypeConverter将值转换为字节并将其保存在DB中 DatatypeConverter.parseBase64Binary(imageAsString) 4.当我将josn对象发送回服务器时,我从DB获取imageAsBytes,将其转换为字符串并附加“data:image ..”部分并发回 dataObject.getProperties()setMarkerImg。( “数据:图像/ PNG | JPEG | JPG | JIF; BASE64,” + ImageHandler.getImageStringFromBytes(imageAsBytes));
这有效,但我要问看看我做的是否正确以及是否有任何简单的方法
答案 0 :(得分:0)
在服务器上,base64解码它,然后将其存储为blob。或者甚至更好,根本不将它存储为blob,解码并将图像放在目录和数据库中,创建一个引用刚刚创建的文件的路径和文件名的记录。
当您将其发回时,请不要发送回图像数据,发回一个URL(可能带有与数据库中的blob / file引用一起存储的ID),以便在您发出请求时该URL,它会查找blob并将其作为具有正确标题的图像提供。