新开最好的传奇网站,阳江网上房地产官网,江阴市网站建设,舆情报告总结2019独角兽企业重金招聘Python工程师标准 Spring文件上传 1、所需依赖包#xff1a;commons-fileupload-1.3.1.jar2、Maven配置文件pom.xml文件中加入依赖Jar包dependencygroupIdcommons-fileupload/groupIdartifactIdcommons-… 2019独角兽企业重金招聘Python工程师标准 Spring文件上传 1、所需依赖包commons-fileupload-1.3.1.jar2、Maven配置文件pom.xml文件中加入依赖Jar包 dependencygroupIdcommons-fileupload/groupIdartifactIdcommons-fileupload/artifactIdversion1.3.1/version/dependency3、在spring的配置文件spring-mvc.xml中加入类型解析器 !-- 上传定义 --bean idmultipartResolver classorg.springframework.web.multipart.commons.CommonsMultipartResolver!-- 100000 btyes --property namemaxUploadSize value20971520//bean如果没有配置multipartResolver,将会报:java.lang.IllegalArgumentException: Expected MultipartHttpServletRequest: is a MultipartResolver configured?4、文件上传接口Controller
Api(value FileUploadController, description 文件上传控制器)
public class FileUploadController {/*** 文件上传接口方法* param multipartFiles 文件* param fileType 文件类型* param request 请求* param response 响应* return Map*/ResponseBodyApiOperation(value 文件上传接口, httpMethod POST)RequestMapping(value /common/uploadfile, method RequestMethod.POST)public ResponseData uploadFile(RequestParam(file) MultipartFile[] multipartFiles, RequestParam(required false) String fileType, HttpServletRequest request, HttpServletResponse response) {/** 1.如果只是上传一个文件则只需要MultipartFile类型接收文件即可而且无需显式指定RequestParam注解* 2.如果想上传多个文件那么这里就要用MultipartFile[]类型来接收文件并且还要指定RequestParam注解* 3.上传多个文件时前台页面中的所有input typefile/的name都应该是multipartFiles否则参数里的multipartFiles无法获取到所有上传的文件* 4.多种格式文件上传日期分文件夹资质文件放到特定文件夹*///记录上传过程信息返回前台ListFileUploadEntity list new ArrayList();String dirName ;// 上传文件保存的路径if(qualification.equals(fileType)){// 资质文件存放到特定文件夹dirName qualification;} else {// 其他格式文件存放到日期命名文件夹dirName DateUtil.newDateString(yyyy-MM-dd);}/** 判断是否存在文件夹*///如果用的是Tomcat服务器则文件会上传到{服务发布位置}/upload/文件夹下String realPath request.getSession().getServletContext().getRealPath(/upload/ dirName);File realPathDir new File(realPath);if(!realPathDir.isDirectory() !realPathDir.exists()){realPathDir .mkdirs();}/** 多文件循环遍历上传*/for (MultipartFile multipartFile : multipartFiles) {//记录上传过程信息返回前台FileUploadEntity fileUploadEntity new FileUploadEntity();if (!multipartFile.isEmpty()) {// 唯一化文件名String newFileName UUID.randomUUID().toString().replaceAll(-, );// 获取源文件拓展名String fileExtensionName FileUtil.getFileExtensionName(multipartFile.getOriginalFilename());// 拼接拓展名newFileName StringUtils.isNotEmpty(fileExtensionName) ? newFileName . fileExtensionName : multipartFile.getOriginalFilename();// 文件相对路径String relativePath /upload/ dirName / newFileName;fileUploadEntity.setCode(200);fileUploadEntity.setFileName(multipartFile.getOriginalFilename());fileUploadEntity.setFilePath(relativePath);fileUploadEntity.setUploadDate(DateUtil.newDateString(DateUtil.TIME_FORMAT_FULL));try {//这里不必处理IO流关闭的问题因为FileUtils.copyInputStreamToFile()方法内部会自动把用到的IO流关掉//FileUtils.copyInputStreamToFile(multipartFile.getInputStream(), new File(realPath, multipartFile.getOriginalFilename()));//这里不必处理IO流关闭的问题因为transferTo方法的实现中会自动关闭IO流multipartFile.transferTo(new File(realPath, newFileName));} catch (IOException e) {e.printStackTrace();fileUploadEntity.setCode(500);}list.add(fileUploadEntity);}}return ResponseData.ok(list);}
}注意RequestParam(file)这里必须加入value值否则多文件时接收不到 转载于:https://my.oschina.net/u/4061880/blog/2999639