import com.tsn.common.utils.utils.tools.time.DateUtils;
import com.tsn.common.utils.web.entity.Response;
import com.tsn.common.utils.web.utils.env.Env;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
@RestController
@RequestMapping("upload")
public class UploadController {
private static final Logger LOGGER = LoggerFactory.getLogger(UploadController.class);
@GetMapping("/")
public String upload() {
return "upload";
}
/**
* 单文件上传
* @param mFile
* @return
*/
@PostMapping("/single")
@ResponseBody
public Response<?> upload(@RequestParam("file") MultipartFile mFile, @RequestParam("traitCode") String traitCode) {
// 文件上传路径
String filePath = Env.getVal("file.upload.path");
if (mFile.isEmpty()) {
return Response.retn("000001", "上传失败,请选择文件");
}
// 文件存储路径
File path = new File(filePath + traitCode + "/");
// 若路径不存在,则创建
if (!path.exists()){
path.mkdirs();
}
// 获取文件名称
String fileName = mFile.getOriginalFilename();
// 文件访问路径
String fileVisitPath = Env.getVal("file.visit.path");
File file = new File(fileVisitPath + traitCode + "/" + fileName);
try {
mFile.transferTo(file);
LOGGER.info("上传成功");
} catch (IOException e) {
LOGGER.error(e.toString(), e);
}
return Response.ok(file);
}
/**
* 多文件上传
* @param mFiles
* @return
*/
@PostMapping("/multi")
@ResponseBody
public Response<?> multiUpload(@RequestParam("files") MultipartFile[] mFiles, @RequestParam("traitCode") String traitCode) {
String filePath = Env.getVal("file.upload.path");
List<File> retnList = new ArrayList<>();
for (int i = 0; i < mFiles.length; i++) {
MultipartFile mFile = mFiles[i];
if (mFile.isEmpty()) {
return Response.retn("000001", "上传第" + (i++) + "个文件失败");
}
File path = new File(filePath + traitCode + "/");
if (!path.exists()){
path.mkdirs();
}
String fileName = mFile.getOriginalFilename();
File file = new File(filePath + traitCode + "/" + fileName);
retnList.add(file);
try {
mFile.transferTo(file);
LOGGER.info("第" + (i + 1) + "个文件上传成功");
} catch (IOException e) {
LOGGER.error(e.toString(), e);
return Response.retn("000001", "上传第" + (i++) + "个文件失败");
}
}
return Response.ok(retnList);
}
}