From 0acb09c80db11a304c92a6183fb5de503a23671b Mon Sep 17 00:00:00 2001 From: ajaxfan <909938737@qq.com> Date: Tue, 29 Dec 2020 09:23:12 +0800 Subject: [PATCH] =?UTF-8?q?=E9=99=84=E4=BB=B6SDK=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E4=BA=86=E9=80=9A=E8=BF=87=20ByteArray=20=E4=B8=8A=E4=BC=A0?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../attachment/sdk/api/AttachmentClient.java | 9 +++++ .../sdk/api/DefaultAttachmentClient.java | 33 ++++++++++++++++--- .../sdk/convertor/FileConvertor.java | 25 ++++++++++++-- 3 files changed, 61 insertions(+), 6 deletions(-) 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); + } + }