@RequestMapping("/fileUpload.html")
@ResponseBody
public Map webUploadFile(HttpServletRequest request, HttpServletResponse response, @RequestParam(value = "sampleMap") String sampleMap, @RequestParam(value = "dataMap") String dataMap, @RequestParam(value = "caseId") String caseId, @RequestParam(value = "code") String code, @RequestParam(value = "caseSn") String caseSn) {
caseSn = caseSn.replace(" ", "");
JSONObject jb = JSONObject.fromObject(dataMap);
JSONObject sampleMsg = JSONObject.fromObject(sampleMap);
Map<String, String> depictMap = (Map) jb;
Map<String, String> samMap = (Map) sampleMsg;
DacasCaseFile dacasCaseFile = new DacasCaseFile();
DacasSampleFile dacasSampleFile = new DacasSampleFile();
boolean flag = true;
Map<String, Object> map = new HashMap<>();
//创建一个通用的多部分解析器
CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(request.getSession().getServletContext());
try {
//判断 request 是否有文件上传,即多部分请求
if (multipartResolver.isMultipart(request)) {
//转换成多部分request
MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request;
//取得request中的所有文件名
Iterator<String> iter = multiRequest.getFileNames();
String filePath = FileUtils.getProperties("/filePath.properties", "fileServerPath");//文件服务器对应的初始文件夹路径
String fileHost = FileUtils.getProperties("/filePath.properties", "fileServerHost");//文件服务器的IP加端口
//20190517创建图片分类文件夹
String pathMk = FileUtils.uploadToServer(fileHost, filePath, caseSn, "images");
while (iter.hasNext()) {
//取得上传文件
MultipartFile file = multiRequest.getFile(iter.next());
if (file != null) {
//取得当前上传文件的文件名称
String myFileName = file.getOriginalFilename();
//如果名称不为“”,说明该文件存在,否则说明该文件不存在
if (myFileName.trim() != "") {
String dateStr = DateUtils.dateToString(new Date(), "yyyyMMddhhmmss");
String fileName = dateStr + myFileName;
//定义上传路径
try {
byte[] fileByte = file.getBytes();
//20190517将上传的文件传到文件服务器新创建的分类文件夹中
HttpUtils.doPut(fileHost, pathMk, fileName, fileByte);
} catch (IllegalStateException e) {
e.printStackTrace();
map.put("code", 1);
return map;
}
}
}
}
}
} catch (Exception e) {
e.printStackTrace();
map.put("code", 1);
return map;
}
map.put("code", 0);
return map;
}
/**
* 创建文件对应的分类文件夹
* @param fileHost 远程文件服务器的IP和端口
* @param filePath 文件服务器的文件存放的基础访问路径
* @param fileType 例:images
*/
public static String uploadToServer(String fileHost,String filePath,String fileType){
String pathMk = filePath + "/"+fileType;
try {
HttpUtils.doMkcol(fileHost, pathMk);//创建图片分类文件夹
} catch (Exception e) {
e.printStackTrace();
}
return pathMk;
}
/**
* Put stream
* @param host
* @param path
* @return
* @throws Exception
*/
public static HttpResponse doMkcol(String host, String path)
throws Exception {
HttpClient httpClient = wrapClient(host);
HttpMkcol httpMkcol = new HttpMkcol(buildUrl(host, path, null));
return httpClient.execute(httpMkcol);
}