package com.ruoyi.project.lims.utils;

import org.springframework.web.multipart.MultipartFile;
import sun.misc.BASE64Encoder;

import java.io.*;

/**
 * MultipartFile base64
 */
public class Base64ToOutstream {
    /**
     * 将bas64写入到OutputStream 中
     * @param base64
     * @param
     */
    public  void createHtmlByBase64(String base64, String htmlPath) {
        StringBuilder stringHtml = new StringBuilder();
        PrintStream printStream = null;
        try {
            // 打开文件
            printStream = new PrintStream(new FileOutputStream(htmlPath));
        } catch (Exception e) {
            e.printStackTrace();
        }
        // 输入HTML文件内容
        stringHtml.append("<html><head>");
        stringHtml.append("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">");
        stringHtml.append("<title></title>");
        stringHtml.append("</head>");
        stringHtml.append(
                "<body style=\"\r\n" + "    text-align: center;\r\n" + "    background-color: #C1C1C1;\r\n" + "\">");
        stringHtml.append("<img src=\"data:image/png;base64," + base64 + "\" />");
        stringHtml.append("<a name=\"head\" style=\"position:absolute;top:0px;\"></a>");
        //添加锚点用于返回首页
        stringHtml.append("<a style=\"position:fixed;bottom:10px;right:10px\" href=\"#head\">回到首页</a>");
        stringHtml.append("</body></html>");
        try {
            // 将HTML文件内容写入文件中
            printStream.println(stringHtml.toString());
        } catch (Exception e) {
            e.printStackTrace();
        }finally {
            if(printStream != null){
                printStream.close();
            }
        }

    }
    /**
     * 将MultipartFile  转换成base64
     */
    public  String  MultipartFileToBase64(MultipartFile file){
        String base64EncoderImg= null;
        try {
            BASE64Encoder bEncoder=new BASE64Encoder();
            String[] suffixArra=file.getOriginalFilename().split("\\.");
            base64EncoderImg = bEncoder.encode(file.getBytes()).replaceAll("[\\s*\t\n\r]", "");
        } catch (IOException e) {
            e.printStackTrace();
        }
        return base64EncoderImg;
    }
    /**
     * outputStream与inputStream的相互转换
     */
    public InputStream  outputStreamToinputStream(OutputStream out){
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        baos = (ByteArrayOutputStream) out;
        InputStream inputStream = new ByteArrayInputStream(baos.toByteArray());
        return  inputStream;
    }
}

 

Logo

快速构建 Web 应用程序

更多推荐