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>