123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139 |
- package cn.cslg.pas.service;
- import cn.cslg.pas.common.dto.FMSDeleteFileDTO;
- import com.google.gson.Gson;
- import lombok.RequiredArgsConstructor;
- import lombok.extern.slf4j.Slf4j;
- import okhttp3.*;
- import org.apache.commons.io.FileUtils;
- import org.springframework.beans.factory.annotation.Value;
- import org.springframework.stereotype.Service;
- import org.springframework.util.FileCopyUtils;
- import org.springframework.web.multipart.MultipartFile;
- import java.io.File;
- import java.io.IOException;
- import java.util.ArrayList;
- import java.util.List;
- import java.util.Objects;
- import java.util.concurrent.TimeUnit;
- import static cn.hutool.core.io.FileUtil.getMimeType;
- /**
- * Okhttp调用FMS上传文件接口
- *
- * @Author xiexiang
- * @Date 2023/8/10
- */
- @RequiredArgsConstructor
- @Slf4j
- @Service
- public class FileManagerService {
- @Value("${FMSUrl}")
- private String FMSUrl;
- @Value("${FileSource}")
- private Integer FileSource;
- /**
- * 调用文件系统上传文件接口
- *
- * @param multipartFiles 文件
- */
- // public String uploadFile(List<MultipartFile> multipartFiles) throws IOException {
- // List<File> files = new ArrayList<>();
- // for (MultipartFile multipartFile : multipartFiles) {
- // File file = new File(multipartFile.getOriginalFilename());
- // FileCopyUtils.copy(multipartFile.getBytes(), file);
- // files.add(file);
- // }
- // MultipartBody.Builder multipartBodyBuilder = new MultipartBody.Builder()
- // .setType(MultipartBody.FORM);
- // for (File file : files) {
- // //根据文件名获取文件的MIME类型
- // String mimeType = getMimeType(file.getPath());
- // multipartBodyBuilder.addFormDataPart("files", file.getName(), RequestBody.create(MediaType.parse(mimeType), file));
- // }
- // RequestBody requestBody = multipartBodyBuilder
- // .addFormDataPart("sourceId", String.valueOf(FileSource))
- // .build();
- // OkHttpClient okHttpClient = new OkHttpClient.Builder()
- // .connectTimeout(60, TimeUnit.SECONDS)
- // .writeTimeout(60, TimeUnit.SECONDS)
- // .readTimeout(60, TimeUnit.SECONDS)
- // .build();
- // Request request = new Request.Builder()
- // .url(FMSUrl + "/fileManager/uploadSystemFile")
- // .post(requestBody)
- // .build();
- // Response response = null;
- // response = okHttpClient.newCall(request).execute();
- // // 最后记得删除临时文件
- // for (File file : files) {
- // FileUtils.deleteQuietly(file);
- // }
- // return Objects.requireNonNull(response.body()).string();
- // }
- //
- // /**
- // * 调用文件系统取出文件接口(获得文件流)
- // *
- // * @param fieldId 文件id
- // */
- // public byte[] downloadSystemFileFromFMS(Integer fieldId) throws IOException {
- // OkHttpClient okHttpClient = new OkHttpClient.Builder()
- // .connectTimeout(60, TimeUnit.SECONDS)
- // .writeTimeout(60, TimeUnit.SECONDS)
- // .readTimeout(60, TimeUnit.SECONDS)
- // .build();
- // Request request = new Request.Builder()
- // .url(FMSUrl + "/fileManager/downloadSystemFile?fileId=" + fieldId)
- // .get()
- // .build();
- // return Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).bytes();
- // }
- //
- // /**
- // * 调用文件系统获取文件信息接口
- // *
- // * @param fileIds 文件ids
- // */
- // public String getSystemFileFromFMS(List<Integer> fileIds) throws IOException {
- // String param = new Gson().toJson(fileIds);
- // RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), param);
- // OkHttpClient okHttpClient = new OkHttpClient.Builder()
- // .connectTimeout(60, TimeUnit.SECONDS)
- // .writeTimeout(60, TimeUnit.SECONDS)
- // .readTimeout(60, TimeUnit.SECONDS)
- // .build();
- // Request request = new Request.Builder()
- // .url(FMSUrl + "/fileManager/getFileData")
- // .post(requestBody)
- // .build();
- // return Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
- // }
- //
- // /**
- // * 调用文件系统删除文件接口
- // *
- // * @param ids 需要删除的文件ids
- // */
- // public String deleteFileFromFMS(List<Integer> ids) throws IOException {
- // FMSDeleteFileDTO fmsDeleteFileDTO = new FMSDeleteFileDTO();
- // fmsDeleteFileDTO.setIds(ids);
- // fmsDeleteFileDTO.setType(2);
- // String param = new Gson().toJson(fmsDeleteFileDTO);
- // RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), param);
- // OkHttpClient okHttpClient = new OkHttpClient.Builder()
- // .connectTimeout(60, TimeUnit.SECONDS)
- // .writeTimeout(60, TimeUnit.SECONDS)
- // .readTimeout(60, TimeUnit.SECONDS)
- // .build();
- // Request request = new Request.Builder()
- // .url(FMSUrl + "/fileManager/deleteSystemFile")
- // .post(requestBody)
- // .build();
- // return Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
- // }
- }
|