学习java,挺好玩的呢

 

1、基于apache的commons-fileupload.jar 完成文件上传

2、MultipartResovler作用:

  2.1 把客户端上传的文件流转换成MutipartFile封装类  

  2.2 通过MutipartFile封装类获取到文件流

3、表单数据类型分类:(method=“post” 最大2GB)   (get是字符流(2KB) post是字节流)

    3.1、在<form> 的enctype是控制表单数据类型的属性

  3.2、默认值 application/x-www-form-urlencoded 普通表单数据(少量文字信息)

  3.3、text/plain 大文字量时使用的类型,邮件,论文

  3.4、multipart/form-data 表单中包含二进制文件内容

4、实现步骤:

  4.1、导入springmvc包和apache文件上传commons-fileupload和commons-io两个jar

  4.2、编写JSP页面

  <body>
    <form action="upload" enctype="multipart/form-data" method="post">
        姓名:<input type="text" name="name"><br/>
        文件:<input type="file" name="file"></br>
        <input type="submit" value="提交吧">
    </form>
  </body>

  4.3、配置springmvc.xml

        <!-- MultipartResolver解析器 -->
        <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
            <property name="maxUploadSize" value="50"></property>
        </bean>
        <!-- 异常解析器 -->
        <bean id="exceptionResolver" class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
            <property name="exceptionMappings">
                <props>
                    <prop key="org.springframework.web.multipart.MaxUploadSizeExceededException">/error.jsp</prop>
                </props>
            </property>
        </bean>

  4.4、编写控制器类

    4.4.1 MultipartFile对象名必须和<input type="file"/>的name属性值相同

@Controller
public class DemoController {
    @RequestMapping("upload")
    public String upload(MultipartFile file,String name) throws IOException{
        System.out.println("name"+name);
        String filename = file.getOriginalFilename();
        String suffix = filename.substring(filename.lastIndexOf("."));
        //判断上传文件类型
        if (suffix.equalsIgnoreCase(".png")) {            
            UUID uuid = UUID.randomUUID();
            FileUtils.copyInputStreamToFile(file.getInputStream(),new File("D:/"+uuid+suffix));
            return "/index.jsp";
        }else{
            return "/error.jsp";
        }
    }
}

 

posted on 2018-12-24 16:00  axu521  阅读(108)  评论(0编辑  收藏  举报

<