diff --git a/base/src/main/java/com/tinyengine/it/controller/ResourceController.java b/base/src/main/java/com/tinyengine/it/controller/ResourceController.java index c3095335..3a020c03 100644 --- a/base/src/main/java/com/tinyengine/it/controller/ResourceController.java +++ b/base/src/main/java/com/tinyengine/it/controller/ResourceController.java @@ -202,7 +202,6 @@ public Result resourceUpload(@RequestParam MultipartFile file) throws resource.setName(fileName); resource.setResourceData(base64); resource.setAppId(loginUserContext.getAppId()); - resource.setCategory("image"); Resource result = resourceService.resourceUpload(resource); return Result.success(result); } @@ -308,7 +307,7 @@ public Result detail(@PathVariable Integer id) { @SystemControllerLog(description = "获取资源") @GetMapping("/resource/download") public void getResource(@RequestParam String name, @RequestParam boolean isResource, - HttpServletResponse response) throws Exception { + @RequestParam(required = false) boolean isChat, HttpServletResponse response) throws Exception { Resource resource = resourceService.queryResourceByName(name); if(resource == null) { throw new ServiceException(ExceptionEnum.CM009.getResultCode(),ExceptionEnum.CM009.getResultMsg()); @@ -326,11 +325,12 @@ public void getResource(@RequestParam String name, @RequestParam boolean isResou response.setContentType(detectedType); // 只使用 filename* 格式,避免中文字符直接出现在header中 - response.setHeader("Content-Disposition", - "inline; filename*=UTF-8''" + encodedFileName); + response.setHeader("Content-Disposition", "inline; filename*=UTF-8''" + encodedFileName); + if(isChat){ + response.setHeader("Content-Disposition", "attachment ; filename*=UTF-8''" + encodedFileName); + } try (OutputStream out = response.getOutputStream()) { out.write(imageBytes); } } - } diff --git a/base/src/main/java/com/tinyengine/it/service/material/impl/ResourceServiceImpl.java b/base/src/main/java/com/tinyengine/it/service/material/impl/ResourceServiceImpl.java index 53a398f4..c868c174 100644 --- a/base/src/main/java/com/tinyengine/it/service/material/impl/ResourceServiceImpl.java +++ b/base/src/main/java/com/tinyengine/it/service/material/impl/ResourceServiceImpl.java @@ -174,15 +174,19 @@ public Resource createResource(Resource resource) throws Exception { @Override @SystemServiceLog(description = "图片上传") public Resource resourceUpload(Resource resource) { - String imageName = Instant.now().toEpochMilli()+resource.getName(); + String imageName = Instant.now().toEpochMilli() + resource.getName(); resource.setName(imageName); String resourceData = resource.getResourceData(); String tinyEngineUrl = System.getenv("TINY_ENGINE_URL"); - + String encodedName = URLEncoder.encode(imageName, StandardCharsets.UTF_8); + String resourceUrl = tinyEngineUrl + "?name=" + encodedName + "&isResource=" + true; + String thumbnailUrl = tinyEngineUrl + "?name=" + encodedName + "&isResource=" + false; + if (resource.getCategory() == null) { + resourceUrl = tinyEngineUrl + "?name=" + encodedName + "&isResource=" + true + "&isChat=" + true; + thumbnailUrl = tinyEngineUrl + "?name=" + encodedName + "&isResource=" + false + "&isChat=" + true; + resource.setCategory("image"); + } if (!StringUtils.isEmpty(resourceData)) { - String encodedName = URLEncoder.encode(imageName, StandardCharsets.UTF_8); - String resourceUrl = tinyEngineUrl + "?name=" + encodedName + "&isResource=" + true; - String thumbnailUrl = tinyEngineUrl + "?name=" + encodedName + "&isResource=" + false; resource.setResourceUrl(resourceUrl); resource.setThumbnailUrl(thumbnailUrl); resource.setThumbnailData(ImageThumbnailGenerator.createThumbnail(resource.getResourceData(), 200, 200));