You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
90 lines
3.1 KiB
90 lines
3.1 KiB
package com.hfkj.controller;
|
|
|
|
import com.hfkj.config.SysConfig;
|
|
import com.hfkj.common.utils.DateUtil;
|
|
import com.hfkj.common.utils.ResponseMsgUtil;
|
|
import com.hfkj.model.ResponseData;
|
|
import com.hfkj.service.common.FileUploadService;
|
|
import io.swagger.annotations.Api;
|
|
import io.swagger.annotations.ApiOperation;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.LoggerFactory;
|
|
import org.springframework.web.bind.annotation.*;
|
|
import org.springframework.web.multipart.MultipartFile;
|
|
import org.springframework.web.multipart.MultipartHttpServletRequest;
|
|
import org.springframework.web.multipart.commons.CommonsMultipartResolver;
|
|
|
|
import javax.annotation.Resource;
|
|
import javax.servlet.http.HttpServletRequest;
|
|
import javax.servlet.http.HttpServletResponse;
|
|
import java.io.File;
|
|
import java.io.FileOutputStream;
|
|
import java.util.*;
|
|
|
|
@RestController
|
|
@RequestMapping(value="/fileUpload")
|
|
@Api(value="文件上传")
|
|
public class FileUploadController {
|
|
|
|
private static Logger log = LoggerFactory.getLogger(FileUploadController.class);
|
|
|
|
@Resource
|
|
private SysConfig sysConfig;
|
|
|
|
@Resource
|
|
private FileUploadService fileUploadService;
|
|
|
|
@RequestMapping(value="/uploadfile",method = RequestMethod.POST)
|
|
@ResponseBody
|
|
@ApiOperation(value = "文件上传")
|
|
public ResponseData uploadFile(@RequestParam(value = "files" , required = false) MultipartFile files,
|
|
HttpServletRequest request,
|
|
HttpServletResponse response) throws Exception {
|
|
try {
|
|
response.setHeader("Access-Control-Allow-Origin", "*");
|
|
CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(
|
|
request.getSession().getServletContext());
|
|
// 判断 request 是否有文件上传,即多部分请求
|
|
List<String> fileNames = new ArrayList<String>();
|
|
if (multipartResolver.isMultipart(request)) {
|
|
// 转换成多部分request
|
|
MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request;
|
|
Iterator<String> iterator = multiRequest.getFileNames();
|
|
|
|
while (iterator.hasNext()) {
|
|
MultipartFile file = multiRequest.getFile(iterator.next());
|
|
if (file != null) {
|
|
FileOutputStream out = null;
|
|
try {
|
|
String fileType = file.getOriginalFilename()
|
|
.substring(file.getOriginalFilename().lastIndexOf(".") + 1);
|
|
String fileName = file.getOriginalFilename().substring(0, file.getOriginalFilename().lastIndexOf(".")) + System.currentTimeMillis() + "." + fileType;
|
|
String childPath = DateUtil.date2String(new Date(), "yyyyMM");
|
|
String destDirName = sysConfig.getFileUrl() + File.separator + childPath;
|
|
File dir = new File(destDirName);
|
|
if (!dir.exists()) {
|
|
dir.mkdirs();
|
|
}
|
|
out = new FileOutputStream(destDirName + File.separator + fileName);
|
|
out.write(file.getBytes());
|
|
out.flush();
|
|
fileNames.add(childPath + "/" + fileName);
|
|
} catch (Exception e) {
|
|
log.error(e.getMessage(), e);
|
|
} finally {
|
|
if (out != null) {
|
|
out.close();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return ResponseMsgUtil.success(fileNames);
|
|
|
|
} catch (Exception e) {
|
|
log.error(e.getMessage(), e);
|
|
return ResponseMsgUtil.exception(e);
|
|
}
|
|
|
|
}
|
|
}
|
|
|