SpringMVC框架提供了MultpartFile对象,该对象表示上传的文件,要求变量名称必须和表单file标签的name属性名称相同
示例代码如下:
- <%--jsp代码--%>
- <%--SpringMVC文件上传--%>
- <form action="user/fileupload2" method="post" enctype="multipart/form-data">
- 选择文件:<input type="file" name="upload"/><br>
- <input type="submit" value="上传"/>
- </form>
控制器代码:
- /**
- * SpringMVC方式文件上传
- *
- * @param request
- * @param upload 上传的文件
- * @return
- * @throws Exception
- */
- @RequestMapping("/fileupload2")
- public String fileupload2(HttpServletRequest request, MultipartFile upload) throws Exception {
- System.out.println("SpringMVC文件上传...");
- // 上传的位置
- String path = request.getSession().getServletContext().getRealPath("/uploads/");
- // 判断,该路径是否存在
- File file = new File(path);
- if (!file.exists()) {
- // 创建该文件夹
- file.mkdir();
- }
- // 获取上传文件的名称
- String filename = upload.getOriginalFilename();
- // 把文件的名称设置唯一值,uuid
- String uuid = UUID.randomUUID().toString().replace("-", "");
- filename = uuid + "_" + filename;
- // 完成文件上传
- upload.transferTo(new File(path, filename));
- return "success";
- }
在SpringMVC配置文件中配置文件解析器对象
- <!--配置文件解析器-->
- <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
- <!--配置上传文件最大大小为10m-->
- <property name="maxUploadSize" value="10485760"/>
- </bean>