xiatian il y a 2 ans
Parent
commit
bc3a87d889

+ 1 - 1
src/main/java/cn/com/qmth/export/ExportByCourseCode.java

@@ -15,7 +15,7 @@ public class ExportByCourseCode {
 		Date start=new Date();
 		try {
 			MyProducer pro=new MyProducer();
-			pro.startDispose(MyConsumer.class, 10, null);
+			pro.startDispose(MyConsumer.class, 8, null);
 		} catch (Exception e) {
 			logger.error(e.getCause(), e);
 		}

+ 14 - 13
src/main/java/cn/com/qmth/export/MyConsumer.java

@@ -97,24 +97,25 @@ public class MyConsumer extends Consumer<Course> {
 		if (StringUtils.isBlank(str)) {
 			return str;
 		}
-		StringBuffer sb = new StringBuffer("");
 		Matcher matcher = imgPat.matcher(str);
-
+		Map<String, String> srcMap = new HashMap<>();
 		while (matcher.find()) {
 			String imgSrc = matcher.group(1).trim();
-			String suff = imgSrc.substring(imgSrc.lastIndexOf(".") + 1).toLowerCase();
-			File img = new File(paperDir + subid + "/" + UUID.randomUUID() + "." + suff);
-			FileUtil.saveUrlAs(imgSrc, img.getAbsolutePath());
-			String base64 = FileUtil.fileToBase64Src(img);
-			matcher.appendReplacement(sb, base64);
+			if (imgSrc.toLowerCase().trim().startsWith("http")) {
+				if (srcMap.get(imgSrc) == null) {
+					String suff = imgSrc.substring(imgSrc.lastIndexOf(".") + 1).toLowerCase();
+					File img = new File(paperDir + subid + "/" + UUID.randomUUID() + "." + suff);
+					FileUtil.saveUrlAs(imgSrc, img.getAbsolutePath());
+					String base64 = FileUtil.fileToBase64Src(img);
+					img.delete();
+					srcMap.put(imgSrc, base64);
+				}
+			}
 		}
-
-		if (StringUtils.isEmpty(sb.toString())) {
-			return str;
-		} else {
-			matcher.appendTail(sb);
-			return sb.toString();
+		for (String imgSrc : srcMap.keySet()) {
+			str = str.replaceAll(imgSrc, srcMap.get(imgSrc));
 		}
+		return str;
 	}
 
 	private List<QuestionProp> getQuestionProp(Connection connect, List<KdQuestion> qs) {