zoukankan      html  css  js  c++  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";
            }
        }
    }
  • 相关阅读:
    Python网络爬虫四大选择器(正则表达式、BS4、Xpath、CSS)总结
    如何利用CSS选择器抓取京东网商品信息
    如何利用Xpath抓取京东网商品信息
    如何利用BeautifulSoup选择器抓取京东网商品信息
    利用Python正则表达式抓取京东网商品信息
    jacoco查看覆盖率
    Centos7.X 搭建Grafana+Jmeter+Influxdb 性能实时监控平台(不使用docker)
    记录工作中遇到的BUG,经典的数据库时区问题和字段类型tinyint(1)问题
    jmeter分布式压测
    Linux性能优化思路
  • 原文地址:https://www.cnblogs.com/axu521/p/10169100.html
Copyright © 2011-2022 走看看