|
@@ -4,38 +4,32 @@ import cn.hutool.core.convert.Convert;
|
|
import com.taais.common.core.config.TaaisConfig;
|
|
import com.taais.common.core.config.TaaisConfig;
|
|
import com.taais.common.core.constant.Constants;
|
|
import com.taais.common.core.constant.Constants;
|
|
import com.taais.common.core.core.domain.CommonResult;
|
|
import com.taais.common.core.core.domain.CommonResult;
|
|
-import com.taais.common.core.utils.MapstructUtils;
|
|
|
|
import com.taais.common.core.utils.StringUtils;
|
|
import com.taais.common.core.utils.StringUtils;
|
|
import com.taais.common.core.utils.file.FileUploadUtils;
|
|
import com.taais.common.core.utils.file.FileUploadUtils;
|
|
import com.taais.common.core.utils.file.FileUtils;
|
|
import com.taais.common.core.utils.file.FileUtils;
|
|
-import com.taais.common.core.utils.file.UnPackedUtil;
|
|
|
|
-import com.taais.common.excel.utils.ExcelUtil;
|
|
|
|
-import com.taais.demo.domain.Data;
|
|
|
|
-import com.taais.demo.domain.vo.DataVo;
|
|
|
|
-import com.taais.demo.service.IDataService;
|
|
|
|
import com.taais.system.config.ServerConfig;
|
|
import com.taais.system.config.ServerConfig;
|
|
import com.taais.system.domain.vo.SysOssUploadVo;
|
|
import com.taais.system.domain.vo.SysOssUploadVo;
|
|
import com.taais.system.domain.vo.SysOssVo;
|
|
import com.taais.system.domain.vo.SysOssVo;
|
|
import com.taais.system.service.ISysOssService;
|
|
import com.taais.system.service.ISysOssService;
|
|
-import jakarta.annotation.Resource;
|
|
|
|
import jakarta.servlet.http.HttpServletRequest;
|
|
import jakarta.servlet.http.HttpServletRequest;
|
|
import jakarta.servlet.http.HttpServletResponse;
|
|
import jakarta.servlet.http.HttpServletResponse;
|
|
-
|
|
|
|
-import net.lingala.zip4j.model.FileHeader;
|
|
|
|
-import org.apache.commons.io.FilenameUtils;
|
|
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.LoggerFactory;
|
|
import org.slf4j.LoggerFactory;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.http.MediaType;
|
|
import org.springframework.http.MediaType;
|
|
-import org.springframework.web.bind.annotation.*;
|
|
|
|
|
|
+import org.springframework.web.bind.annotation.GetMapping;
|
|
|
|
+import org.springframework.web.bind.annotation.PostMapping;
|
|
|
|
+import org.springframework.web.bind.annotation.RequestMapping;
|
|
|
|
+import org.springframework.web.bind.annotation.RestController;
|
|
import org.springframework.web.multipart.MultipartFile;
|
|
import org.springframework.web.multipart.MultipartFile;
|
|
|
|
|
|
-
|
|
|
|
import java.io.BufferedInputStream;
|
|
import java.io.BufferedInputStream;
|
|
import java.io.File;
|
|
import java.io.File;
|
|
import java.io.FileInputStream;
|
|
import java.io.FileInputStream;
|
|
-import java.nio.file.Paths;
|
|
|
|
-import java.util.*;
|
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
|
+import java.util.HashMap;
|
|
|
|
+import java.util.List;
|
|
|
|
+import java.util.Map;
|
|
import java.util.zip.ZipEntry;
|
|
import java.util.zip.ZipEntry;
|
|
import java.util.zip.ZipOutputStream;
|
|
import java.util.zip.ZipOutputStream;
|
|
|
|
|
|
@@ -52,12 +46,10 @@ import static com.taais.common.security.utils.LoginHelper.getLoginUser;
|
|
public class CommonController {
|
|
public class CommonController {
|
|
private static final Logger log = LoggerFactory.getLogger(CommonController.class);
|
|
private static final Logger log = LoggerFactory.getLogger(CommonController.class);
|
|
private static final String FILE_DELIMETER = ",";
|
|
private static final String FILE_DELIMETER = ",";
|
|
- @Autowired
|
|
|
|
- private ServerConfig serverConfig;
|
|
|
|
private final ISysOssService sysOssService;
|
|
private final ISysOssService sysOssService;
|
|
|
|
|
|
@Autowired
|
|
@Autowired
|
|
- private IDataService dataService;
|
|
|
|
|
|
+ private ServerConfig serverConfig;
|
|
|
|
|
|
public CommonController(ISysOssService sysOssService) {
|
|
public CommonController(ISysOssService sysOssService) {
|
|
this.sysOssService = sysOssService;
|
|
this.sysOssService = sysOssService;
|
|
@@ -121,104 +113,8 @@ public class CommonController {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- @PostMapping("/zip/upload")
|
|
|
|
- public CommonResult<SysOssUploadVo> uploadZipFile(@RequestParam("file") MultipartFile file, @RequestParam("excelFile") MultipartFile excelFile) throws Exception {
|
|
|
|
-// try {
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- List<DataVo> userList = ExcelUtil.importExcel(excelFile.getInputStream(),DataVo.class);
|
|
|
|
- Map<String, Data> pic_name2obj = new HashMap<>();
|
|
|
|
- //为插入数据库做准备
|
|
|
|
- for(DataVo dataVo:userList){
|
|
|
|
- pic_name2obj.put(dataVo.getName(), MapstructUtils.convert(dataVo, Data.class));
|
|
|
|
- }
|
|
|
|
- String originalFilename = file.getOriginalFilename();
|
|
|
|
- assert originalFilename != null;
|
|
|
|
- String suffix = StringUtils.substring(originalFilename, originalFilename.lastIndexOf("."), originalFilename.length());
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- // 解压
|
|
|
|
- String basedir = TaaisConfig.getUploadPath();
|
|
|
|
- File ZipOrRar_temp = FileUploadUtils.getAbsoluteFile(basedir,FileUploadUtils.extractFilename(file));// 解压目录
|
|
|
|
- String dest_zip = ZipOrRar_temp.getAbsolutePath();
|
|
|
|
-
|
|
|
|
- file.transferTo(Paths.get(dest_zip));
|
|
|
|
- String dest = ZipOrRar_temp.getParent();
|
|
|
|
-
|
|
|
|
- List<File> extractedFileList = new ArrayList<File>();
|
|
|
|
- if(suffix.equals(".zip")){
|
|
|
|
- List<FileHeader> fileheaders = UnPackedUtil.unPackZip(ZipOrRar_temp,dest);
|
|
|
|
- //添加解压目录
|
|
|
|
-// dest = dest + "\\" + FilenameUtils.getBaseName(file.getOriginalFilename());
|
|
|
|
- for(FileHeader fileHeader : fileheaders) {
|
|
|
|
-
|
|
|
|
- if (!fileHeader.isDirectory()) {
|
|
|
|
- String fileHeaderName = fileHeader.getFileName();
|
|
|
|
- String fileHeader_suffix = StringUtils.substring(fileHeaderName, fileHeaderName.lastIndexOf("."), fileHeaderName.length());
|
|
|
|
- if(!fileHeader_suffix.equals(".jpg")&&!fileHeader_suffix.equals(".jpeg")
|
|
|
|
- &&!fileHeader_suffix.equals(".png")){
|
|
|
|
- continue;
|
|
|
|
-
|
|
|
|
-// for(File efile:extractedFileList){
|
|
|
|
-// efile.delete();
|
|
|
|
-//
|
|
|
|
-// }
|
|
|
|
-// return CommonResult.fail("压缩文件里有文件并不是图片!");
|
|
|
|
- }
|
|
|
|
- extractedFileList.add(new File(dest,fileHeader.getFileName()));
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
|
|
|
|
|
|
|
|
-
|
|
|
|
- }else if(suffix.equals(".rar")){
|
|
|
|
- List<com.github.junrar.rarfile.FileHeader> fileheaders = UnPackedUtil.unPackRar(ZipOrRar_temp,dest);
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- //添加解压目录
|
|
|
|
-// dest = dest + "\\" + FilenameUtils.getBaseName(file.getOriginalFilename());
|
|
|
|
- for(com.github.junrar.rarfile.FileHeader fileHeader : fileheaders) {
|
|
|
|
-
|
|
|
|
- if (!fileHeader.isDirectory()) {
|
|
|
|
- String fileHeaderName = fileHeader.getFileName();
|
|
|
|
- String fileHeader_suffix = StringUtils.substring(fileHeaderName, fileHeaderName.lastIndexOf("."), fileHeaderName.length());
|
|
|
|
- if(!fileHeader_suffix.equals(".jpg")&&!fileHeader_suffix.equals(".jpeg")
|
|
|
|
- &&!fileHeader_suffix.equals(".png")){
|
|
|
|
- continue;
|
|
|
|
-
|
|
|
|
-// for(File efile:extractedFileList){
|
|
|
|
-// efile.delete();
|
|
|
|
-//
|
|
|
|
-// }
|
|
|
|
-// return CommonResult.fail("压缩文件里有文件并不是图片!");
|
|
|
|
- }
|
|
|
|
- extractedFileList.add(new File(dest,fileHeader.getFileName()));
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- for(File efile:extractedFileList){
|
|
|
|
- String fileName = FileUploadUtils.getPathFileName(dest,efile.getName());
|
|
|
|
- String url = serverConfig.getUrl() + fileName;
|
|
|
|
- url = url.replaceAll("\\\\", "/");
|
|
|
|
- Data mydata = pic_name2obj.get(efile.getName());
|
|
|
|
-
|
|
|
|
- // TODO: 将导入的excel表和url一起插入数据库,图片名称对应
|
|
|
|
- mydata.setUrl(url);
|
|
|
|
- dataService.save(mydata);
|
|
|
|
- }
|
|
|
|
- //删除压缩文件
|
|
|
|
- FileUtils.deleteFile(dest_zip);
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- return CommonResult.success("数据集上传成功!");
|
|
|
|
-// } catch (Exception e) {
|
|
|
|
-// return CommonResult.fail(e.getMessage());
|
|
|
|
-// }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
/**
|
|
/**
|
|
* 通用上传请求(多个)
|
|
* 通用上传请求(多个)
|
|
*/
|
|
*/
|