jquery上传 java_jquery+ spring+java 多文件上传

该博客介绍了一个使用Java Spring MVC处理jQuery多文件上传的示例。通过MultipartHttpServletRequest获取上传文件,检查文件大小和MIME类型,然后保存到指定路径,并更新或新增数据库记录。
摘要由CSDN通过智能技术生成

*@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;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值