Java中读取本地图片并转为base64解决办法

主要在头像上传比较常见

后端处理方式:

  /***
    * @Description: 显示头像
    * @Author: lzw
    * @Date: 2020/12/21 21:19
    * @param yve930
    * @return: void
    **/
   @RequestMapping("showImg")
   public void showImg(Integer yve930) throws Exception {
       //将图片文件转化为字节数组字符串,并对其进行Base64编码处理
       String imgFile ="D:\20201222\lzw\headImg\a.jpg";
       if(imgFile!=null){
           if(new File(imgFile).exists()){
               InputStream inputStream = null;
               byte[] buffer = null;
               //读取图片字节数组
               try {
                   inputStream = new FileInputStream(imgFile);
                   int count = 0;
                   while (count == 0) {
                       count = inputStream.available();
                   }
                   buffer = new byte[count];
                   inputStream.read(buffer);
               } catch (IOException e) {
                   e.printStackTrace();
               } finally {
                   if (inputStream != null) {
                       try {
                           // 关闭inputStream流
                           inputStream.close();
                       } catch (IOException e) {
                           e.printStackTrace();
                       }
                   }
               }
               data="data:image/png;base64,"+new BASE64Encoder().encode(buffer);
           }
       }
       setData("data", t8LiuZhengWeiManageReadService.showImg(yve930));
   }

前端方法

 //js部分:
               this.Base.submit(null, {
                   url: "team8/LiuZhengWei/T8LiuZhengWeiManageRestService/showImg",
                   data: {}
               }).then(data => {
                   this.imageUrl = data.data.data
                   console.log('成功', data)
               }).catch(error => {
                   console.log('失败', error)
               });
       
//html部分:
        <img src="imageUrl" /> 

因为服务器上面的图片的地址无法在html中直接解析出来,所以只能通过base64编码处理图片编码;

前端Base64处理方式

    function getBase64(img, callback) {
        const reader = new FileReader()
        reader.addEventListener('load', () => callback(reader.result))
        reader.readAsDataURL(img)
    }
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容