• springmvc文件上传


      1.spring-serlvet.xml  

    1  <!-- 文件上传 -->
    2      <bean class="org.springframework.web.multipart.commons.CommonsMultipartResolver" id="multipartResolver">
    3          <!-- 编码方式 -->
    4         <property name="defaultEncoding" value="utf-8"></property>
    5         <!-- 文件最大 -->
    6         <property name="maxUploadSize" value="10485760000"></property> 
    7         <!-- 缓存-->
    8         <property name="maxInMemorySize" value="40960"></property>    
    9      </bean>

    注:这里bean的Id一定要写multipartResolver,前面不能加commons。

      2.Controller(一共有两种方法)

     1 @RequestMapping("/load")
     2     public String downLoad(
     3             @RequestParam("wenjian")CommonsMultipartFile multiFile,
     4             HttpServletRequest request) {
     5         if (!multiFile.isEmpty()) {
     6             File test = new File("D://upload");
     7             if(!test.exists()){
     8                 test.mkdirs();
     9             }
    10             try {
    11                 FileOutputStream out = new FileOutputStream("D://upload//"
    12                         + multiFile.getOriginalFilename());
    13                 InputStream in = multiFile.getInputStream();
    14                 int len;
    15                 byte[] buffer = new byte[1024 * 1024 * 10];
    16                 while ((len = in.read(buffer)) > 0) {
    17                     out.write(buffer, 0, len);
    18                     out.flush();
    19                 }
    20                 out.close();
    21                 in.close();
    22             } catch (Exception e) {
    23                 throw new RuntimeException(e);
    24             }
    25         }
    26         return "/success";
    27     }
    28 
    29     @RequestMapping("load1")
    30     public String upload(HttpServletRequest request,HttpServletResponse response){
    31         CommonsMultipartResolver  multipartResolver = new CommonsMultipartResolver(request.getSession().getServletContext());
    32         
    33         if (multipartResolver.isMultipart(request)) {
    34             MultipartHttpServletRequest multipartHttpServletRequest = (MultipartHttpServletRequest) request;
    35             
    36             Iterator<String> iter = multipartHttpServletRequest.getFileNames();
    37                 
    38             while(iter.hasNext()){
    39                 MultipartFile file = multipartHttpServletRequest.getFile(iter.next());
    40                 System.out.println(file.getOriginalFilename()+"*-------------------");
    41                 if(file != null){
    42                     File test = new File("D://upload");
    43                     if(!test.exists()){
    44                         test.mkdirs();
    45                     }
    46                     File filePath = new File("D://upload/"+file.getOriginalFilename());
    47                     try {
    48                         file.transferTo(filePath);
    49                     } catch (Exception e) {
    50                         throw new RuntimeException(e);
    51                     }
    52                 }
    53             }
    54             
    55         }
    56         
    57         return "/success";
    58     }

     3.jsp

    1 <form name="up" action="<%=request.getContextPath() %>/file/load" method="post"
    2             enctype="multipart/form-data">
    3             <input type="file" name="wenjian" />
    4             <input type="submit" value="上传" />
    5         </form>

       在做springmvc上传时需要两个jar文件

          1.com.springsource.org.apache.commons.fileupload-1.2.0.jar 

          2.com.springsource.org.apache.commons.io-1.4.0.jar 

       这两个jar文件有的时候名字会变commons.fileupload-1.2.0.jar ,commons.io-1.4.0.jar ,其实都一样

    如果没有这两个jar包回报错:java.lang.NoClassDefFoundError: org/apache/commons/fileupload/FileItemFactory

    如果没有multipart解析器回报这个错:org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.lang.ClassCastException: org.apache.catalina.connector.RequestFacade  

     

    如果有使用请标明来源:http://www.cnblogs.com/duwenlei/
  • 相关阅读:
    UML中几种类间关系:继承、实现、依赖、关联、聚合、组合的联系与区别
    使用Unity extension 设置默认的拦截器(interceptor)
    修复Eclipse debug时提示‘Cannot connect to VM’
    Windows下删除.svn文件夹的最简易方法
    Collections的copy()方法和ArrayList的大小问题
    .NET Framework 3.5中序列化成JSON数据及JSON数据的反序列化,以及jQuery的调用JSON
    【设备编程】海康视频监控设备C#二次开发系列一
    【Asp.Net】自定义控件?用户控件?还是新型的复合控件?
    windows phone 获取udid
    windows phone 如何获得手机的分辨率
  • 原文地址:https://www.cnblogs.com/duwenlei/p/3510554.html
Copyright © 2020-2023  润新知