MultipartFile对象用于接收图片信息
获取inputStream流,转为字符串,调用存储到hbase的微服务
然后将图片转换为图片流(这一段从百度上看来的),再转换成字节数组,然后put存储进hbase
然后出现异常,大概就是转图片流那一块的问题,没找到图片,但是我确定传的是一张图片
最后就是返回给前端
最后转为Base64编码返回
大概就是这个问题,这个方法行不行的通我也不太确定,搞了2天了,已自闭。
有其他的点子也可以,求个解决问题的方法
我建议你图片不要存到数据库里面,应该存到一个指定文件夹里面,数据库记录图片的名字或者地址即可,前端实现显示图片和数据库没有关系,你可以将图片放到静态文件夹里面使用nginx进行配置,或者放到tomcat里面进行启动tomcat,将地址返回给前端可以在浏览器上展示图片
实现的java代码如下:
public Map<String,Object> upload(MultipartFile myImg) throws IOException {
//把文件复制给d盘
//得到上传时用户上传的文件名
String fileName=myImg.getOriginalFilename();
File targetFile=new File("/opt/installs/tomcat8.0/webapps/ROOT/assets/avatar/"+fileName);
//开始赋值
myImg.transferTo(targetFile);
//保存数据前给属性赋值
// stu.setHeadImg(fileName);
Map<String,Object> map=new HashMap<>();
String newAvatar="http://xxxx/assets/avatar/"+fileName;
map.put("avatarPath",newAvatar);
return map;
}
我这个是将源码放到虚拟机里面了,你可以改动上面的存储地址为window某磁盘目录下
read不应该是输出流吗
HBase 2.x版本的MOB功能可以实现大对象存储