1、添加相关依赖:
<dependency><groupId>commons-fileupload</groupId><artifactId>commons-fileupload</artifactId><version>1.3.2</version></dependency>
2、在 mvc.xml 中进行配置:
<bean id="multipartResolver"class="org.springframework.web.multipart.commons.CommonsMultipartResolver"><!--上传文件的最大大小--><property name="maxUploadSize" value="17367648787"/><!-- 设置文件放入临时文件夹的最大大小限制此值是阈值,低于此值,保存在内存中,高于此值,生成在硬盘上的文件--><property name="maxInMemorySize" value="4096"/><!-- 上传文件的编码 --><property name="defaultEncoding" value="UTF-8"/></bean>
或 java 配置类中进行配置:
@Beanpublic CommonsMultipartResolver multipartResolver(){CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver();// 设置允许文件上传的最大尺寸multipartResolver.setMaxUploadSize(104857600L);// 设置文件放入临时文件夹的最大大小限制// 此值是阈值,低于此值,保存在内存中,高于此值,生成在硬盘上的文件multipartResolver.setMaxInMemorySize(4096);return multipartResolver;}
3、实现文件上传:
前端页面:
<form action="/upload" enctype="multipart/form-data" method="post">请选择文件:<input type="file" name="file"><input type="submit" value="上传"></form>
控制器:
@PostMapping(value = "/upload",produces = MediaType.MULTIPART_FORM_DATA_VALUE)public String upload(@RequestParam("file") MultipartFile file, HttpServletRequest request) {boolean success = false;// 判断文件是否为空if (!file.isEmpty()) {// 获取项目根目录所在的绝对路径String path = request.getServletContext().getRealPath("/");// 设置上传的文件存放目录File uploadFile = new File(path + "/upload");// 判断文件目录是否存在,不存在则新建if (!uploadFile.exists()) {// 新建目录uploadFile.mkdir();}// 获取上传文件名String originalFilename = file.getOriginalFilename();// 获取上传文件的后缀String suffix = originalFilename.substring(originalFilename.indexOf("."));// 生成新文件名String filename = System.currentTimeMillis() + suffix;// 上传文件try {file.transferTo(new File(uploadFile, filename));success = true;} catch (IOException e) {e.printStackTrace();}}return "文件上传:" + success;}
