*@paramtoken token
*@paramfileType 文件类型
*@paramnumber 上传文件个数
*@return
*/@RequestMapping("/uploadFile")public Object upload(HttpServletRequest request, @RequestParam(required= true) String fileType,
@RequestParam(required = true) Integer number) {
String result= null;//用来处理多文件上传的请求类
MultipartHttpServletRequest multipartRequest =(MultipartHttpServletRequest) request;//用来存储文件列表
List templatesList = new ArrayList<>();//文件请求中获取的文件是集合类型
for (int i = 0 ; i < number ; i++) {
templatesList.addAll(multipartRequest.getFiles("file" +i));
}//将集合转换成数组
MultipartFile[] files = newMultipartFile[number];
templatesList.toArray(files);
log.info("files"+files.length);if (files!=null && files.length > 0) {String path=filePath;
path= path + "coalminehwaui/upload/";//定义位绝对路径
File parent = new File(newFile(path).getAbsolutePath());//保存时间
Date date = newDate();
SimpleDateFormat dateFormat= new SimpleDateFormat("yyyyMMddhhmmss");
List> dataList = new ArrayList<>();
System.out.println("\tparent=" +parent);if (!parent.exists()) {
parent.mkdirs();
}for(MultipartFile file :files){//文件信息
Map m = new HashMap();try{//检查文件大小
long fileSize =file.getSize();if (fileSize > 1 * 1024 * 1024) {//return RequestResponseTool.getJsonMessage(RespCode.repeat, "上传失败!上传的文件大小超出了1M限制!");
return null;
}//检查文件MIME类型
String contentType =file.getContentType();
List types = new ArrayList();//扩展名 doc dot
types.add("application/msword");//扩展名 docx
types.add("application/vnd.openxmlformats-officedocument.wordprocessingml.document");//扩展名 pdf
types.add("application/pdf");//扩展名 txt
types.add("text/plain");//扩展名 wps
types.add("application/vnd.ms-works");//扩展名 xla xlc xlm xls xlt xlw
types.add("application/vnd.ms-excel");if (!types.contains(contentType)) {//return RequestResponseTool.getJsonMessage(RespCode.repeat, "上传失败!不允许上传此类型的文件!");
return null;
}//获取原始文件名
String originalFilename =file.getOriginalFilename();//根据文件名称进行查询,如果存在则更新否则新增
Map fileMap =knowledgeService.getFileByName(originalFilename,fileType);//如果能查询出对应的数据,则进行更新操作
if(fileMap !=null && fileMap.size() >0){
String id=fileMap.get("id").toString();
String oldfileName=fileMap.get("file_name").toString();//找到之前的文件,如果存在则删除
File oldFile = new File( path+"/"+oldfileName);if(oldFile.exists()) {
oldFile.delete();
}//保存当前的文件
file.transferTo(newFile(parent, oldfileName));//更新文件表中的大小
m.put("id", id);
m.put("file_size", fileSize);
m.put("style","update");
}//如果查不到数据,则进行新增操作
else{//新文件名称
String filename =UUID.randomUUID().toString();
String suffix= "";int beginIndex = originalFilename.lastIndexOf(".");if (beginIndex != -1) {
suffix=originalFilename.substring(beginIndex);
}//执行保存文件
file.transferTo(new File(parent, filename +suffix));//存放的文件路径
String file_path = "/upload/" + filename +suffix;//知识资源库id
String knowledgeId = IDCode.knowledgeId + IDTool.getWebUserId() + "";//文件表Id
String file_id = IDCode.fileId + IDTool.getWebUserId() + "";//文件逻辑名称(和路径中的名称保持一致)
String file_name = filename +suffix;
m.put("id", knowledgeId);
m.put("type_id", fileType);
m.put("file_id", file_id);//创建时间
m.put("create_time", dateFormat.format(date));//创建id
m.put("creater_id", opuid);
m.put("file_name", file_name);
m.put("file_real_name", originalFilename);
m.put("file_path", file_path);
m.put("file_size", fileSize);
m.put("style","add");
}
}catch(Exception ex) {
ex.printStackTrace();
}//将形成的数据放在集合中
dataList.add(m);
}
result=knowledgeService.add(dataList);
}returnresult;
}