1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- package cn.cslg.pas.common.utils;
- import cn.cslg.pas.service.common.FileManagerService;
- import cn.hutool.core.util.IdUtil;
- import org.apache.commons.io.input.XmlStreamReaderException;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.core.io.ByteArrayResource;
- import org.springframework.mock.web.MockMultipartFile;
- import org.springframework.stereotype.Component;
- import org.springframework.web.multipart.MultipartFile;
- import java.io.ByteArrayInputStream;
- import java.io.IOException;
- import java.io.InputStream;
- import java.lang.reflect.Method;
- import java.net.URLEncoder;
- import java.nio.charset.StandardCharsets;
- import java.util.ArrayList;
- import java.util.List;
- /**
- * @Author xiexiang
- * @Date 2024/1/11
- */
- @Component
- public class ParseByteToFileUtils {
- @Autowired
- private FileManagerService fileManagerService;
- public static MultipartFile convertBytesToMultipartFile(byte[] fileData, String fileName) throws IOException {
- InputStream inputStream = new ByteArrayInputStream(fileData);
- MultipartFile multipartFile = new MockMultipartFile("file", fileName, "application/octet-stream", inputStream);
- return multipartFile;
- }
- public String uploadFile(byte[] fileData, Integer type) throws IOException {
- List<MultipartFile> multipartFiles = new ArrayList<>();
- //保存生成地址
- String fileName = "";
- if (type.equals(1)) {
- fileName = IdUtil.simpleUUID() + ".xls";
- } else if (type.equals(2)) {
- fileName = IdUtil.simpleUUID() + ".pdf";
- }
- //文件原始名中的中文字符可能会乱码,对文件名进行URL编码
- String encodedFileName = URLEncoder.encode(fileName, StandardCharsets.UTF_8.toString());
- MultipartFile multipartFile = this.convertBytesToMultipartFile(fileData, encodedFileName);
- multipartFiles.add(multipartFile);
- List<String> fileGuids = fileManagerService.uploadFileGetGuid(multipartFiles);
- String fileGuid = null;
- if (!fileGuids.isEmpty()) {
- fileGuid = fileGuids.get(0);
- }
- return fileGuid;
- }
- }
|