diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/asms/service/impl/LawsAsmsOpenApiServiceImpl.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/asms/service/impl/LawsAsmsOpenApiServiceImpl.java index a17eb2fe..e3ae18eb 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/asms/service/impl/LawsAsmsOpenApiServiceImpl.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/asms/service/impl/LawsAsmsOpenApiServiceImpl.java @@ -856,6 +856,16 @@ public class LawsAsmsOpenApiServiceImpl extends ServiceImpl"); + }catch (Exception e2){ + endIndex = imageUrl.indexOf("\" >"); + } + } String urlSuffix = imageUrl.substring(imageUrl.indexOf("getImg"), imageUrl.indexOf("\" alt")); String url = asmsPostUtil.getHost() + urlSuffix; diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/asms/service/impl/SynchronizationAsmsService.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/asms/service/impl/SynchronizationAsmsService.java index d9c6217f..2fcc4852 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/asms/service/impl/SynchronizationAsmsService.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/asms/service/impl/SynchronizationAsmsService.java @@ -598,26 +598,45 @@ public class SynchronizationAsmsService { stringBuilder.append("

").append(articleContent).append("

"); articleContent = stringBuilder.toString(); }else { - String urlSuffix = articleContent.substring(articleContent.indexOf("getImg"), - articleContent.indexOf("\" alt")); - String imageUrl = asmsPostUtil.getHost() + urlSuffix; - String fileName = imageUrl.substring(imageUrl.lastIndexOf("/") + 1); - // 获取图片 - HttpHeaders headers = new HttpHeaders(); - headers.set(HttpHeaders.USER_AGENT, "Mozilla/5.0"); - headers.set(HttpHeaders.ACCEPT, MediaType.ALL_VALUE); - HttpEntity entity = new HttpEntity<>(headers); - ResponseEntity responseEntity = restTemplate.exchange(imageUrl, HttpMethod.GET, entity, byte[].class); - if (HttpStatus.OK == responseEntity.getStatusCode()) { - byte[] imageBytes = responseEntity.getBody(); - MultipartFile file = new MockMultipartFile(fileName, fileName, "application/octet-stream", imageBytes); - // 上传图片 - OSSFile oSSFile = ossFileService.uploadLocalForSplit(file, "", "", ""); - StringBuilder stringBuilder = new StringBuilder(); - stringBuilder.append("

").append("").append("

"); - articleContent = stringBuilder.toString(); + // 定义正则表达式匹配 img 标签及其属性值 + Pattern pattern = Pattern.compile("(<\\s*img[^>]*>)"); + Matcher matcher = pattern.matcher(articleContent); + + while (matcher.find()) { + String imageUrl = matcher.group(1); + int endIndex = 0; + try { + endIndex = imageUrl.indexOf("\" alt"); + }catch (Exception e){ + try { + endIndex = imageUrl.indexOf("\" />"); + }catch (Exception e2){ + endIndex = imageUrl.indexOf("\" >"); + } + } + String urlSuffix = imageUrl.substring(imageUrl.indexOf("getImg"), + endIndex); + String url = asmsPostUtil.getHost() + urlSuffix; + String fileName = url.substring(url.lastIndexOf("/") + 1); + // 获取图片 + HttpHeaders headers = new HttpHeaders(); + headers.set(HttpHeaders.USER_AGENT, "Mozilla/5.0"); + headers.set(HttpHeaders.ACCEPT, MediaType.ALL_VALUE); + HttpEntity entity = new HttpEntity<>(headers); + ResponseEntity responseEntity = restTemplate.exchange(url, HttpMethod.GET, entity, byte[].class); + if (HttpStatus.OK == responseEntity.getStatusCode()) { + byte[] imageBytes = responseEntity.getBody(); + MultipartFile file = new MockMultipartFile(fileName, fileName,"application/octet-stream" ,imageBytes); + // 上传图片 + OSSFile oSSFile = ossFileService.uploadLocalForSplit(file, "", "", ""); + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(""); + // 在此处进行替换操作,将图片链接替换为新的地址或者删除该图片标签等 + articleContent = articleContent.replaceAll(imageUrl,stringBuilder.toString()); + } } + } } return articleContent;