From 037e91db7dee12aa1adc666601d890a58ca2e2ab Mon Sep 17 00:00:00 2001
From: heheng <475597332@qq.com>
Date: 星期四, 20 十一月 2025 16:08:14 +0800
Subject: [PATCH] 新增数据上传准东单独业务处理
---
src/main/java/com/ruoyi/common/utils/ImageToBase64.java | 191 ++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 186 insertions(+), 5 deletions(-)
diff --git a/src/main/java/com/ruoyi/common/utils/ImageToBase64.java b/src/main/java/com/ruoyi/common/utils/ImageToBase64.java
index 6b3e28f..bb28859 100644
--- a/src/main/java/com/ruoyi/common/utils/ImageToBase64.java
+++ b/src/main/java/com/ruoyi/common/utils/ImageToBase64.java
@@ -1,23 +1,51 @@
package com.ruoyi.common.utils;
-import java.io.ByteArrayOutputStream;
-import java.io.InputStream;
+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 {
+ log.info("【F】任务记录-处理数据imageUrl:" + imageUrl);
+ String[] split = imageUrl.split(",");
+ String URL1 = "";
+ if (split.length > 1){
+ URL1 = split[0].trim();
+ }else if (split.length == 1){
+ URL1 = imageUrl.trim();
+ }
+ if (URL1.isEmpty()){
+ log.info("【F】任务记录-处理数据URL1为空");
+ return "";
+ }
+
// 创建URL对象
- URL url = new URL(imageUrl);
+ URL url = new URL(URL1);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
// 设置请求方法和超时时间
connection.setRequestMethod("GET");
- connection.setConnectTimeout(5000);
- connection.setReadTimeout(5000);
+ connection.setConnectTimeout(10000);
+ connection.setReadTimeout(10000);
connection.setDoInput(true);
// 获取输入流
@@ -37,7 +65,9 @@
byteArrayOutputStream.close();
// 将图片字节数组编码为 Base64 字符串
+ // 将图片字节数组编码为 Base64 字符串
return Base64.getEncoder().encodeToString(imageBytes);
+
} catch (Exception e) {
e.printStackTrace();
return null;
@@ -45,4 +75,155 @@
}
+
+ public static String convertImageToBase64More(String imageUrl) {
+ try {
+ log.info("【F】任务记录-处理数据imageUrl:" + imageUrl);
+ String[] split = imageUrl.split(",");
+ String URL1 = split[0].trim();
+ StringBuilder result = new StringBuilder();
+ for (int i = 0; i < split.length; i++) {
+ String url1 = split[i].trim();
+ // 跳过空字符串
+ if (url1.isEmpty()) {
+ continue;
+ }
+
+ // 创建URL对象
+ URL url = new URL(url1);
+ 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 字符串
+ // 将图片字节数组编码为 Base64 字符串
+ String base64 = Base64.getEncoder().encodeToString(imageBytes);
+
+ if (result.length() > 0) {
+ result.append(",");
+ }
+ result.append(base64);
+
+ }
+
+ return result.toString();
+ } 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();
+ }
+
+
+ }
+
+
}
--
Gitblit v1.9.2