SpringMVC上传文件

来源:互联网 发布:unity3d塔防游戏 编辑:程序博客网 时间:2024/06/18 17:04

web.xml

<!-- 配置springMVC -->  <servlet>    <servlet-name>springMVC</servlet-name>    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>        <init-param>           <!-- contextConfigLocation 是固定的 -->            <param-name>contextConfigLocation</param-name>                  <!-- 配置读取路径-->            <param-value>classpath*:config/springAnnotation-servlet.xml</param-value>        </init-param>  </servlet>  <servlet-mapping>    <servlet-name>springMVC</servlet-name>        <!-- 配置拦截规则-->    <url-pattern>/</url-pattern>  </servlet-mapping>

springAnnotation-servlet.xml

    <!--  配置上传文件-->    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">          <!-- 默认编码 -->          <property name="defaultEncoding" value="utf-8" />          <!--最大上传大小单位字节-->          <property name="maxUploadSize" value="10485760000" />          <!--最大缓存字节-->          <property name="maxInMemorySize" value="40960" />    </bean>

controller

@Controller@RequestMapping("/file")public class UploadController {    @RequestMapping("/upload1")    public String addUser(@RequestParam("file") CommonsMultipartFile file,HttpServletRequest request) throws IOException{        //file.getOriginalFilename(): 1.png        if(!file.isEmpty()){            //创建输出流            FileOutputStream os =null;            //获取输入流            InputStream in = null;            //高效输入流            BufferedInputStream bi=null;            //高效输出流            BufferedOutputStream bo=null;            int len=0;            try {                  os = new FileOutputStream("E:/"+ file.getOriginalFilename());                  in = file.getInputStream();                  bi=new BufferedInputStream(in);                  bo=new BufferedOutputStream(os);                byte[]  arr = new byte[1024];                while((len=bi.read(arr)) != -1){                    bo.write(arr, 0, len);                    bo.flush();                }            } catch (FileNotFoundException e) {                // TODO Auto-generated catch block                e.printStackTrace();            }finally{                //释放资源                if(os!=null){                    os.close();                }                if(in!=null){                    in.close();                }                if(bi!=null){                    bi.close();                }                if(bo!=null){                    bo.close();                }            }        }        return "/success";    }    //多文件上传    @RequestMapping("/upload2")    public String upload2(HttpServletRequest request,HttpServletResponse response) throws IllegalStateException, IOException{        ///创建一个通用的多部分解析器        CommonsMultipartResolver multipartResolver  = new CommonsMultipartResolver(request.getSession().getServletContext());        // 设置编码        multipartResolver.setDefaultEncoding("utf-8");          // 判断 request 是否有文件上传        if(multipartResolver.isMultipart(request)){             // 强转换成多部分request            MultipartHttpServletRequest  multiRequest = (MultipartHttpServletRequest)request;            //获取所有文件            Iterator<String>  iter = multiRequest.getFileNames();            while(iter.hasNext()){                String next = (String)iter.next();                //next:file                    MultipartFile file = multiRequest.getFile(next);                    //file: org.springframework.web.multipart.commons.CommonsMultipartFile@2e574e38                if(file != null){                    String fileName = "demoUpload" + file.getOriginalFilename();                    String path = "E:/" + fileName;                    File localFile = new File(path);                    file.transferTo(localFile);                }            }        }        return "/success";    }}

jsp

<form name="userForm" action="/springMVC1/file/upload1" method="post"enctype="multipart/form-data" >        上传文件方式1:<input type="file" name="file">        <input type="submit" value="上传" >    </form>        <form name="userForm" action="/springMVC1/file/upload2" method="post" enctype="multipart/form-data" >        上传文件方式2:<input type="file" name="file1">        <input type="submit" value="上传" >    </form>
0 0
原创粉丝点击