FileManagerService.java 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. package cn.cslg.pas.service;
  2. import cn.cslg.pas.common.dto.FMSDeleteFileDTO;
  3. import com.google.gson.Gson;
  4. import lombok.RequiredArgsConstructor;
  5. import lombok.extern.slf4j.Slf4j;
  6. import okhttp3.*;
  7. import org.apache.commons.io.FileUtils;
  8. import org.springframework.beans.factory.annotation.Value;
  9. import org.springframework.stereotype.Service;
  10. import org.springframework.util.FileCopyUtils;
  11. import org.springframework.web.multipart.MultipartFile;
  12. import java.io.File;
  13. import java.io.IOException;
  14. import java.util.ArrayList;
  15. import java.util.List;
  16. import java.util.Objects;
  17. import java.util.concurrent.TimeUnit;
  18. import static cn.hutool.core.io.FileUtil.getMimeType;
  19. /**
  20. * Okhttp调用FMS上传文件接口
  21. *
  22. * @Author xiexiang
  23. * @Date 2023/8/10
  24. */
  25. @RequiredArgsConstructor
  26. @Slf4j
  27. @Service
  28. public class FileManagerService {
  29. @Value("${FMSUrl}")
  30. private String FMSUrl;
  31. @Value("${FileSource}")
  32. private Integer FileSource;
  33. /**
  34. * 调用文件系统上传文件接口
  35. *
  36. * @param multipartFiles 文件
  37. */
  38. // public String uploadFile(List<MultipartFile> multipartFiles) throws IOException {
  39. // List<File> files = new ArrayList<>();
  40. // for (MultipartFile multipartFile : multipartFiles) {
  41. // File file = new File(multipartFile.getOriginalFilename());
  42. // FileCopyUtils.copy(multipartFile.getBytes(), file);
  43. // files.add(file);
  44. // }
  45. // MultipartBody.Builder multipartBodyBuilder = new MultipartBody.Builder()
  46. // .setType(MultipartBody.FORM);
  47. // for (File file : files) {
  48. // //根据文件名获取文件的MIME类型
  49. // String mimeType = getMimeType(file.getPath());
  50. // multipartBodyBuilder.addFormDataPart("files", file.getName(), RequestBody.create(MediaType.parse(mimeType), file));
  51. // }
  52. // RequestBody requestBody = multipartBodyBuilder
  53. // .addFormDataPart("sourceId", String.valueOf(FileSource))
  54. // .build();
  55. // OkHttpClient okHttpClient = new OkHttpClient.Builder()
  56. // .connectTimeout(60, TimeUnit.SECONDS)
  57. // .writeTimeout(60, TimeUnit.SECONDS)
  58. // .readTimeout(60, TimeUnit.SECONDS)
  59. // .build();
  60. // Request request = new Request.Builder()
  61. // .url(FMSUrl + "/fileManager/uploadSystemFile")
  62. // .post(requestBody)
  63. // .build();
  64. // Response response = null;
  65. // response = okHttpClient.newCall(request).execute();
  66. // // 最后记得删除临时文件
  67. // for (File file : files) {
  68. // FileUtils.deleteQuietly(file);
  69. // }
  70. // return Objects.requireNonNull(response.body()).string();
  71. // }
  72. //
  73. // /**
  74. // * 调用文件系统取出文件接口(获得文件流)
  75. // *
  76. // * @param fieldId 文件id
  77. // */
  78. // public byte[] downloadSystemFileFromFMS(Integer fieldId) throws IOException {
  79. // OkHttpClient okHttpClient = new OkHttpClient.Builder()
  80. // .connectTimeout(60, TimeUnit.SECONDS)
  81. // .writeTimeout(60, TimeUnit.SECONDS)
  82. // .readTimeout(60, TimeUnit.SECONDS)
  83. // .build();
  84. // Request request = new Request.Builder()
  85. // .url(FMSUrl + "/fileManager/downloadSystemFile?fileId=" + fieldId)
  86. // .get()
  87. // .build();
  88. // return Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).bytes();
  89. // }
  90. //
  91. // /**
  92. // * 调用文件系统获取文件信息接口
  93. // *
  94. // * @param fileIds 文件ids
  95. // */
  96. // public String getSystemFileFromFMS(List<Integer> fileIds) throws IOException {
  97. // String param = new Gson().toJson(fileIds);
  98. // RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), param);
  99. // OkHttpClient okHttpClient = new OkHttpClient.Builder()
  100. // .connectTimeout(60, TimeUnit.SECONDS)
  101. // .writeTimeout(60, TimeUnit.SECONDS)
  102. // .readTimeout(60, TimeUnit.SECONDS)
  103. // .build();
  104. // Request request = new Request.Builder()
  105. // .url(FMSUrl + "/fileManager/getFileData")
  106. // .post(requestBody)
  107. // .build();
  108. // return Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
  109. // }
  110. //
  111. // /**
  112. // * 调用文件系统删除文件接口
  113. // *
  114. // * @param ids 需要删除的文件ids
  115. // */
  116. // public String deleteFileFromFMS(List<Integer> ids) throws IOException {
  117. // FMSDeleteFileDTO fmsDeleteFileDTO = new FMSDeleteFileDTO();
  118. // fmsDeleteFileDTO.setIds(ids);
  119. // fmsDeleteFileDTO.setType(2);
  120. // String param = new Gson().toJson(fmsDeleteFileDTO);
  121. // RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), param);
  122. // OkHttpClient okHttpClient = new OkHttpClient.Builder()
  123. // .connectTimeout(60, TimeUnit.SECONDS)
  124. // .writeTimeout(60, TimeUnit.SECONDS)
  125. // .readTimeout(60, TimeUnit.SECONDS)
  126. // .build();
  127. // Request request = new Request.Builder()
  128. // .url(FMSUrl + "/fileManager/deleteSystemFile")
  129. // .post(requestBody)
  130. // .build();
  131. // return Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
  132. // }
  133. }