BASE64DecodedMultipartFile.java 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. package com.imed.costaccount.model;
  2. import org.springframework.web.multipart.MultipartFile;
  3. import java.io.*;
  4. /**
  5. * @author 李加喜
  6. * @Package com.imed.costaccount.model
  7. * @date 2021-08-27 18:54
  8. */
  9. public class BASE64DecodedMultipartFile implements MultipartFile {
  10. private final byte[] imgContent;
  11. private final String header;
  12. public BASE64DecodedMultipartFile(byte[] imgContent, String header) {
  13. this.imgContent = imgContent;
  14. this.header = header.split(";")[0];
  15. }
  16. @Override
  17. public String getName() {
  18. // TODO - implementation depends on your requirements
  19. return System.currentTimeMillis() + Math.random() + "." + header.split("/")[1];
  20. }
  21. @Override
  22. public String getOriginalFilename() {
  23. // TODO - implementation depends on your requirements
  24. return System.currentTimeMillis() + (int)Math.random() * 10000 + "." + header.split("/")[1];
  25. }
  26. @Override
  27. public String getContentType() {
  28. // TODO - implementation depends on your requirements
  29. return header.split(":")[1];
  30. }
  31. @Override
  32. public boolean isEmpty() {
  33. return imgContent == null || imgContent.length == 0;
  34. }
  35. @Override
  36. public long getSize() {
  37. return imgContent.length;
  38. }
  39. @Override
  40. public byte[] getBytes() throws IOException {
  41. return imgContent;
  42. }
  43. @Override
  44. public InputStream getInputStream() throws IOException {
  45. return new ByteArrayInputStream(imgContent);
  46. }
  47. @Override
  48. public void transferTo(File dest) throws IOException, IllegalStateException {
  49. new FileOutputStream(dest).write(imgContent);
  50. }
  51. }