zhentao 1 month ago
parent
commit
4ea8142a13
1 changed files with 60 additions and 0 deletions
  1. 60 0
      src/main/java/com/zhentao/common/oss/SimpleBytesMultipartFile.java

+ 60 - 0
src/main/java/com/zhentao/common/oss/SimpleBytesMultipartFile.java

@@ -0,0 +1,60 @@
+package com.zhentao.common.oss;
+
+import org.springframework.web.multipart.MultipartFile;
+import java.io.*;
+
+public class SimpleBytesMultipartFile implements MultipartFile {
+    private final String name;
+    private final String originalFilename;
+    private final String contentType;
+    private final byte[] content;
+
+    public SimpleBytesMultipartFile(String name, String originalFilename, String contentType, byte[] content) {
+        this.name = name;
+        this.originalFilename = originalFilename;
+        this.contentType = contentType;
+        this.content = content;
+    }
+
+    @Override
+    public String getName() {
+        return name;
+    }
+
+    @Override
+    public String getOriginalFilename() {
+        return originalFilename;
+    }
+
+    @Override
+    public String getContentType() {
+        return contentType;
+    }
+
+    @Override
+    public boolean isEmpty() {
+        return content == null || content.length == 0;
+    }
+
+    @Override
+    public long getSize() {
+        return content.length;
+    }
+
+    @Override
+    public byte[] getBytes() throws IOException {
+        return content;
+    }
+
+    @Override
+    public InputStream getInputStream() throws IOException {
+        return new ByteArrayInputStream(content);
+    }
+
+    @Override
+    public void transferTo(File dest) throws IOException, IllegalStateException {
+        try (FileOutputStream fos = new FileOutputStream(dest)) {
+            fos.write(content);
+        }
+    }
+}