怎么才能将文件流或者图片转化为base64,传到前台展示

Posted liuqing576598117

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么才能将文件流或者图片转化为base64,传到前台展示相关的知识,希望对你有一定的参考价值。

图片转化为base64,传到前台展示

public String getBase64(){
        String imgStr = "";
        try {
             
        File file = new File("C:\EThinkTankFile\20180402160120431.jpg");
        FileInputStream fis = new FileInputStream(file);
        byte[] buffer = new byte[(int) file.length()]; 
            int offset = 0; 
            int numRead = 0; 
            while (offset < buffer.length && (numRead = fis.read(buffer, offset, buffer.length - offset)) >= 0) {
                offset += numRead;
            } 
             
            if (offset != buffer.length) { 
                throw new IOException("Could not completely read file " 
                        + file.getName()); 
            } 
            fis.close(); 
            BASE64Encoder encoder = new BASE64Encoder();
            imgStr = encoder.encode(buffer);
        } catch (Exception e) {
            e.printStackTrace();
        }
             return "data:image/jpeg;base64,"+imgStr;
}前台代码:<img id="picture" width="690" height="460"  src="">通过ajax 请求将后台返回的字符串 添加到src属性中去 $("#picture").attr("src","后台返回的base64字符串");

文件流转化为base64,传到前台展示

public static String getBase64FromInputStream(InputStream in) {
        // 将图片文件转化为字节数组字符串,并对其进行Base64编码处理
        byte[] data = null;
        // 读取图片字节数组
        try {
            ByteArrayOutputStream swapStream = new ByteArrayOutputStream();
            byte[] buff = new byte[100];
            int rc = 0;
            while ((rc = in.read(buff, 0, 100)) > 0) {
                swapStream.write(buff, 0, rc);
            }
            data = swapStream.toByteArray();
        } catch (IOException e) {
            LOGGER.error("InputStream转换成base64失败:{}", e);
        } finally {
            if (in != null) {
                try {
                    in.close();
                } catch (IOException e) {
                    LOGGER.error("InputStream转换成base64失败:{}", e);
                }
            }
        }
        //返回的字符串传到前台,添加到src属性中去,即可显示图片
        return "data:image/jpeg;base64,"+ new String(Base64.encodeBase64(data));
    }

 

以上是关于怎么才能将文件流或者图片转化为base64,传到前台展示的主要内容,如果未能解决你的问题,请参考以下文章

base64转化为bmp图片?

如何将音频文件转为base64 编码

CKeditor是怎么把图片转化成一些字符串的?我粘贴一张图片进编辑区,查看代码就是一些字符串?

转换图片为base64

图片通过ajax传到后台再传到word中,再生成word,但是显示的是经过base_64编码的内容,怎么办呢?

base64的使用案例