SpringMVC文件上传

来源:互联网 发布:mac os 配置 postman 编辑:程序博客网 时间:2024/06/14 00:17
package com.zzxsoft.controller;import java.io.File;import java.util.Iterator;import javax.servlet.http.HttpServletRequest;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.multipart.MultipartFile;import org.springframework.web.multipart.MultipartHttpServletRequest;import org.springframework.web.multipart.commons.CommonsMultipartResolver;import org.springframework.web.servlet.ModelAndView;/*文件上传,FileUploadController类 * @ author * **/@Controller@RequestMapping("/file")public class FileUploadController {@RequestMapping("/upload")public ModelAndView upload(HttpServletRequest request) throws Exception {// 将当前文件初始化给CommonsMutipartResolver (多部分解析器)int count = 0;CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(request.getSession().getServletContext());// 检查表单中是否有 enctype="multipart/from-data"if (multipartResolver.isMultipart(request)) {// 将request变成多部分requestMultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request;// 获取multiRequest中所有的文件域中Iterator iterator = multiRequest.getFileNames();// 遍历所有文件域while (iterator.hasNext()) {// 判断是否有选择的文件MultipartFile file = multiRequest.getFile(iterator.next().toString());// 判断文件域中是否有选择的文件if (file != null && file.getOriginalFilename() != "") {// 路径是项目中服务器端的路径. file.getOriginalFilename()是文件名,包含后缀 .txtString path = request.getSession().getServletContext().getRealPath("/fileUpload/")+ file.getOriginalFilename();System.out.println(path);// 上传文件file.transferTo(new File(path));count++;}}}return new ModelAndView("fileUpload", "msg", "成功上传 " + count + " 个文件");}}



/*文件上传,.jsp页面
 * @ author
 * **/


SpringMVC-servlet.xml的配置

<!-- 文件上传  CommonsMultipartResolver-->
    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
         <!-- 设置文件上传最大值,注意,这个值是所有文件的大小和 1024*1024*4 =  4 M -->
         <property name="maxUploadSize" value="4194304"/>
         <!-- 缓冲区大小  -->
         <property name="maxInMemorySize" value="4096"/>
         <!-- 设置上传时的字符编码 -->
         <property name="defaultEncoding" value="utf-8"/>
    </bean>

上传前的界面


上传时的界面


上传好返回时的界面


原创粉丝点击