package com.ruoyi.common.utils; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.ruoyi.doublePrevention.entity.CJReport.PreventCJReportRiskAnaUnit; import com.ruoyi.doublePrevention.entity.ZDReport.HandlerZDReportParam; import com.ruoyi.doublePrevention.entity.ZDReport.PreventZDReportRiskAnaUnit; import com.ruoyi.doublePrevention.enums.SyncEnum; import lombok.extern.slf4j.Slf4j; import java.io.*; import java.net.HttpURLConnection; import java.net.URL; import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.Base64; import java.util.Date; import java.util.List; @Slf4j public class ImageToBase64 { public static String convertImageToBase64(String imageUrl) { try { // 创建URL对象 URL url = new URL(imageUrl); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); // 设置请求方法和超时时间 connection.setRequestMethod("GET"); connection.setConnectTimeout(5000); connection.setReadTimeout(5000); connection.setDoInput(true); // 获取输入流 InputStream inputStream = connection.getInputStream(); // 读取图片字节数据 ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); byte[] buffer = new byte[1024]; int bytesRead; while ((bytesRead = inputStream.read(buffer)) != -1) { byteArrayOutputStream.write(buffer, 0, bytesRead); } byte[] imageBytes = byteArrayOutputStream.toByteArray(); // 关闭流 inputStream.close(); byteArrayOutputStream.close(); // 将图片字节数组编码为 Base64 字符串 return Base64.getEncoder().encodeToString(imageBytes); } catch (Exception e) { e.printStackTrace(); return null; } } public static void main(String[] args) { pushFourColorPicture(); } public static String convertImageToBase64local(String imagePath) throws IOException { File file = new File(imagePath); FileInputStream imageInFile = new FileInputStream(file); // 读取文件为字节数组 byte[] imageData = new byte[(int) file.length()]; imageInFile.read(imageData); // 使用 Base64 编码 return Base64.getEncoder().encodeToString(imageData); } public static void convertBase64ToImage(String base64Data, String outputPath) throws IOException { // 去除 Base64 数据的前缀(如果有) if (base64Data.startsWith("data:image")) { base64Data = base64Data.split(",")[1]; } // 解码 Base64 数据为字节数组 byte[] imageBytes = Base64.getDecoder().decode(base64Data); // 写入字节数组到图片文件 try (FileOutputStream imageOutFile = new FileOutputStream(outputPath)) { imageOutFile.write(imageBytes); } } public static void pushFourColorPicture() { HttpURLConnection con = null; BufferedReader buffer = null; int responseCode = 200; StringBuffer unitResultBuffer = null; //上报数据 try { URL url = new URL( "http://218.31.50.112:8087/api/wwyt/t_qyfxfbxx_List"); con = (HttpURLConnection) url.openConnection(); // 设置请求方式和参数 con.setRequestMethod("POST"); con.setDoOutput(true); con.setDoInput(true); con.setUseCaches(false); con.setRequestProperty("token", "030B6744-EECB-4732-B679-280373E7E575"); con.setRequestProperty("Content-Type", "application/json; charset=UTF-8"); JSONObject jsonObject = new JSONObject(); jsonObject.put("ID", "mn25kwer-8956-34hj-3sdl-dl980lcfdc8a"); jsonObject.put("IMG", convertImageToBase64local("D:\\1751424343390.png")); jsonObject.put("CREATE_TIME", "20220501000000"); jsonObject.put("UPDATE_TIME", "20250701000000"); jsonObject.put("DELETE_MARK", "0"); jsonObject.put("CREATE_BY", "李康"); jsonObject.put("UPDATE_BY","李康"); JSONArray jsonArray = new JSONArray(); jsonArray.add(jsonObject); // 发送请求体 try (OutputStream os = con.getOutputStream()) { os.write(JSON.toJSONString(jsonArray).getBytes(StandardCharsets.UTF_8)); } responseCode = con.getResponseCode(); //本段日志,测试成功后,可注释掉 if (responseCode == HttpURLConnection.HTTP_OK) { //得到响应流 InputStream inputStream = con.getInputStream(); //将响应流转换成字符串 unitResultBuffer = new StringBuffer(); String line; buffer = new BufferedReader(new InputStreamReader(inputStream, "UTF-8")); while ((line = buffer.readLine()) != null) { unitResultBuffer.append(line); } System.out.println("上传四色图:" + unitResultBuffer); } } catch (Exception e) { e.printStackTrace(); } } }