diff --git a/mall-ebtp-cloud-attachment-sdk/src/main/java/com/chinaunicom/ebtp/mall/cloud/attachment/sdk/api/AttachmentClient.java b/mall-ebtp-cloud-attachment-sdk/src/main/java/com/chinaunicom/ebtp/mall/cloud/attachment/sdk/api/AttachmentClient.java index 1f60dd4..f16af22 100644 --- a/mall-ebtp-cloud-attachment-sdk/src/main/java/com/chinaunicom/ebtp/mall/cloud/attachment/sdk/api/AttachmentClient.java +++ b/mall-ebtp-cloud-attachment-sdk/src/main/java/com/chinaunicom/ebtp/mall/cloud/attachment/sdk/api/AttachmentClient.java @@ -62,4 +62,13 @@ public interface AttachmentClient { */ Optional upload(Long businessId, File file); + /** + * 上传资源文件 + * + * @param bid + * @param file + * @return + */ + Optional upload(Long businessId, String filename, byte[] array); + } diff --git a/mall-ebtp-cloud-attachment-sdk/src/main/java/com/chinaunicom/ebtp/mall/cloud/attachment/sdk/api/DefaultAttachmentClient.java b/mall-ebtp-cloud-attachment-sdk/src/main/java/com/chinaunicom/ebtp/mall/cloud/attachment/sdk/api/DefaultAttachmentClient.java index 6b6a830..debaf6b 100644 --- a/mall-ebtp-cloud-attachment-sdk/src/main/java/com/chinaunicom/ebtp/mall/cloud/attachment/sdk/api/DefaultAttachmentClient.java +++ b/mall-ebtp-cloud-attachment-sdk/src/main/java/com/chinaunicom/ebtp/mall/cloud/attachment/sdk/api/DefaultAttachmentClient.java @@ -70,7 +70,9 @@ public class DefaultAttachmentClient implements AttachmentClient { } /** - * @param businessId + * 文件下载 + * + * @param businessId 业务id * @return */ @Override @@ -79,7 +81,9 @@ public class DefaultAttachmentClient implements AttachmentClient { } /** - * @param objectId + * 文件下载 + * + * @param objectId 对象id * @return */ @Override @@ -88,8 +92,10 @@ public class DefaultAttachmentClient implements AttachmentClient { } /** - * @param businessId - * @param file + * 上传附件 + * + * @param businessId 业务id + * @param file 文件 * @return */ @Override @@ -102,4 +108,23 @@ public class DefaultAttachmentClient implements AttachmentClient { return Optional.ofNullable(new UploadObject().setId(feedback.getOid())); } + /** + * 上传附件 + * + * @param businessId 业务ID + * @param filename 文件名称 + * @param array 文件字节组 + * @return + */ + @Override + public Optional upload(Long businessId, String filename, byte[] array) { + Objects.requireNonNull(businessId); + Objects.requireNonNull(array); + + FeedbackMessage feedback = queryService.handleFileUpload(businessId, + FileConvertor.toMultipartFile(filename, array)); + + return Optional.ofNullable(new UploadObject().setId(feedback.getOid())); + } + } diff --git a/mall-ebtp-cloud-attachment-sdk/src/main/java/com/chinaunicom/ebtp/mall/cloud/attachment/sdk/convertor/FileConvertor.java b/mall-ebtp-cloud-attachment-sdk/src/main/java/com/chinaunicom/ebtp/mall/cloud/attachment/sdk/convertor/FileConvertor.java index 4b0f96b..0d25bab 100644 --- a/mall-ebtp-cloud-attachment-sdk/src/main/java/com/chinaunicom/ebtp/mall/cloud/attachment/sdk/convertor/FileConvertor.java +++ b/mall-ebtp-cloud-attachment-sdk/src/main/java/com/chinaunicom/ebtp/mall/cloud/attachment/sdk/convertor/FileConvertor.java @@ -13,19 +13,21 @@ import org.springframework.web.multipart.commons.CommonsMultipartFile; /** * 文件转换器 + * * @author Ajaxfan */ public final class FileConvertor { - + /** * 将 File 对象转换为 MultipartFile 对象 + * * @param file 原始文件对象 * @return */ public static MultipartFile toMultipartFile(File file) { FileItemFactory factory = new DiskFileItemFactory(16, null); FileItem item = factory.createItem("file", "text/plain", true, file.getName()); - + int bytesRead = 0; byte[] buffer = new byte[8192]; @@ -41,4 +43,23 @@ public final class FileConvertor { return new CommonsMultipartFile(item); } + /** + * 文件字节数组转换为上传资源 + * + * @param filename 文件名称 + * @param array 文件字节组 + * @return + */ + public static MultipartFile toMultipartFile(String filename, byte[] array) { + FileItemFactory factory = new DiskFileItemFactory(16, null); + FileItem item = factory.createItem("file", "text/plain", true, filename); + + try (OutputStream os = item.getOutputStream()) { + os.write(array); + } catch (IOException e) { + e.printStackTrace(); + } + return new CommonsMultipartFile(item); + } + }