Java 存储图片到hbase,从hbase取出图片返回给前端展示?

img

MultipartFile对象用于接收图片信息

img
获取inputStream流,转为字符串,调用存储到hbase的微服务

img
然后将图片转换为图片流(这一段从百度上看来的),再转换成字节数组,然后put存储进hbase

img
然后出现异常,大概就是转图片流那一块的问题,没找到图片,但是我确定传的是一张图片

img

最后就是返回给前端

img

最后转为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功能可以实现大对象存储