• 两岸民心相亲不可违逆(观沧海) 2019-06-24
  • 习近平新时代中国特色社会主义思想为解决人类问题贡献中国智慧 2019-06-22
  • 反击!欧盟成员国一致支持对美28亿欧元产品征收报复性关税 2019-06-22
  • 专访李毅立:走进国家 了解国情 续写中华情 2019-06-08
  • 现在,表面上看,很多城市绿树成荫,花卉草地到处都是,实际上地下空间已经掏空,建了车库、地下商城,雨水根本渗不下去。 2019-06-08
  • 你反来复去说1+1=2,真痴呆了?你应该讲点其他的吧,譬如,1+1=2,是客观事实还是规律,是真理还是谬误。 2019-06-05
  • 蜈蚣精的出游必备战靴 旅行路上皆战场 2019-06-05
  • 《法医秦明2》“长腿CP”最萌身高差吸睛 剧情高能 2019-06-04
  • 【春到渭南】随手拍渭南各地区春景,一贴看尽渭南春色! 2019-06-04
  • 如何像皇帝、老佛爷那样避个暑? 2019-05-30
  • 印度总理寓所附近现UFO?网友:外星人也想看莫迪 2019-05-21
  • 人民网评:建设一支生态环境保护铁军 2019-05-21
  • 这三个史无前例,让美国有点懵了 2019-05-18
  • 唐嫣蜡像入驻上海杜莎夫人蜡像馆--旅游频道 2019-05-18
  • 生活调查:过午不食可以养生减肥是真的吗? 2019-05-18
  • 冰球打架重伤:

    北京 切换校区

    全国24小时免费热线

    400-009-1906

    Spring MVC 处理 Multipart/form-data

    时间:2019-02-22   来源:尚学堂   阅读:290

    Multipart/form-data

    Multipart/form-data为表单的MIME编码属性之一,共有三个值

    ①application/x-www-form-urlencoded

    ②multipart/form-data

    ③text/plain

    ①为Html表单默认传输编码类型

    ②是表单上传的非文本的内容,传递的是文件数据,设置该属性再配合post请求方式从而实现文件上传

    ③是传输为纯文本的意思,在发邮件时要设置这种编码,拿text/plain和text/html做比较,前者用来传输纯文本文件,后者则是传递html代码的编码类型,在发送头文件时才用得上

    上述所提到的MIME,它的英文全称是"MultipurposeInternetMailExtensions"多功能Internet邮件扩充服务,它是一种多用途网际邮件扩充协议。通过MIME,浏览器的再请求,会告诉服务器接收的数据是什么类型

     

    SpringMVC处理Multipart/form-data

    两种实现方式:

    1、CommonsMultipartResolver:依赖于Apache

    2、StandardServletMultipartResolver:依赖于Servlet3.0,SpringBoot默认支持该方式

    一、配置解析器

    1、CommonsMultipartResolver的配置

    弊端:无法设置请求整体的最大容量

    (1)声明Bean和配置上传参数:

    <bean id="multipartResolver" 
       class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
            <property name="uploadTempDir" value="/temp"/>    <!--设置上传目录/temp -->
            <property name="maxUploadSize" value="2097152"/>   <!--最大文件容量设置为2M-->
            <property name="maxInMemorySize" value="0"/>    · <!--最大的内存大小设置为0,超过0就写入磁盘--> 
        </bean>

    2、StandardServletMultipartResolver的配置

    (1)声明Bean:

    <bean id="multipartResolver" 
        class="org.springframework.web.multipart.support.StandardServletMultipartResolver”>
    @Bean(name = "multipartResolver")
    public StandardServletMultipartResolver getStandardServletMultipartResolver(){
              return new StandardServletMultipartResolver();
    }

    (2)配置上传参数

    ~web.xml配置

    <servlet>
        <servlet-name>dispatcherServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:applicationContext.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
        <multipart-config>
            <!--上传到/temp 目录-->
          <location>/temp/upload</location>
            <!--文件大小为2M-->
          <max-file-size>2097152</max-file-size>
            <!--整个请求不超过4M-->
          <max-request-size>4194304</max-request-size>
            <!--大于0M的所有文件都要写入磁盘-->
          <file-size-threshold>0</file-size-threshold>
        </multipart-config>
      </servlet>
      <servlet-mapping>
        <servlet-name>dispatcherServlet</servlet-name>
        <url-pattern>/</url-pattern>
      </servlet-mapping>

    ~配置类中配置

    @Override
        protected void customizeRegistration(ServletRegistration.Dynamic registration) {
            //上传到/temp 目录,文件大小为2M,整个请求不超过4M,且所有文件都要写入磁盘
            registration.setMultipartConfig(new MultipartConfigElement("E:\\temp",2097152,4194304,0));
        }

    二、SpringMVC处理

    1、表单:

    <form action="/save" method="post" enctype="multipart/form-data">
              <input type="file" name="pic">
              <input type="submit">
       </form>

    2、MVC接收:

    @RequestMapping(value = "/save",method = RequestMethod.POST)
        public String getHome(MultipartFile pic) throws IOException {
            Files.copy(pic.getInputStream(), Paths.get(ServletContext.getRealPath("/temp"),pic.getOriginalFilename));
            return null;
        }

    相关资讯

    • 北京校区
    • 山西校区
    • 郑州校区
    • 武汉校区
    • 四川校区
    • 长沙校区
    • 深圳校区
    • 上海校区
    • 广州校区
    • 保定招生办

    北京海淀区校区(总部):北京市海淀区西三旗街道建材城西路中腾建华商务大厦东侧二层尚学堂
    北京京南校区:北京亦庄经济开发区科创十四街6号院1号楼 赛蒂国际工业园
    咨询电话:400-009-1906 / 010-56233821
    面授课程:?JavaEE+微服务+大数据? ???大数据+机器学习+平台架构?????Python+数据分析+机器学习??人工智能+模式识别+强化学习???WEB前端+移动端+服务端渲染

     

    山西学区地址:山西省晋中市榆次区大学城大学生活广场万科商业A1座702

    郑州学区地址:河南电子商务产业园6号楼4层407
    咨询电话:0371-55177956

    武汉学区地址:武汉市东湖高新区光谷金融港B22栋11楼
    咨询电话:027-87989193

    四川学区地址:成都市高新区锦晖西一街99号布鲁明顿大厦2栋1003室
    咨询电话:028-65176856 / 13880900114

    网址://www.cssxt.com/
    咨询电话:0731-83072091

    深圳校区地址:深圳市宝安区航城街道航城大道航城创新创业园A4栋210(固戍地铁站C出口)
    咨询电话:0755-23061965 / 18898413781

    上海尚学堂松江校区地址:上海市松江区荣乐东路2369弄45号绿地伯顿大厦2层
    咨询电话:021-67690939

    广州校区地址:广州市天河区元岗横路31号慧通产业广场B区B1栋6楼尚学堂(地铁3号线或6号线到“天河客运站”D出口,右拐直走约800米)
    咨询电话:020-2989 6995

    保定招生办公室

    地址:河北省保定市竞秀区朝阳南大街777号鸿悦国际1101室

    电话:15132423123

    Copyright 2006-2019 北京尚学堂科技有限公司  京ICP备13018289号-19  京公网安备11010802015183  
    媒体联系:18610174079 闫老师  

    Java基础班,免费试学三周

  • 两岸民心相亲不可违逆(观沧海) 2019-06-24
  • 习近平新时代中国特色社会主义思想为解决人类问题贡献中国智慧 2019-06-22
  • 反击!欧盟成员国一致支持对美28亿欧元产品征收报复性关税 2019-06-22
  • 专访李毅立:走进国家 了解国情 续写中华情 2019-06-08
  • 现在,表面上看,很多城市绿树成荫,花卉草地到处都是,实际上地下空间已经掏空,建了车库、地下商城,雨水根本渗不下去。 2019-06-08
  • 你反来复去说1+1=2,真痴呆了?你应该讲点其他的吧,譬如,1+1=2,是客观事实还是规律,是真理还是谬误。 2019-06-05
  • 蜈蚣精的出游必备战靴 旅行路上皆战场 2019-06-05
  • 《法医秦明2》“长腿CP”最萌身高差吸睛 剧情高能 2019-06-04
  • 【春到渭南】随手拍渭南各地区春景,一贴看尽渭南春色! 2019-06-04
  • 如何像皇帝、老佛爷那样避个暑? 2019-05-30
  • 印度总理寓所附近现UFO?网友:外星人也想看莫迪 2019-05-21
  • 人民网评:建设一支生态环境保护铁军 2019-05-21
  • 这三个史无前例,让美国有点懵了 2019-05-18
  • 唐嫣蜡像入驻上海杜莎夫人蜡像馆--旅游频道 2019-05-18
  • 生活调查:过午不食可以养生减肥是真的吗? 2019-05-18
  • 银色雌狮4x投注 中国福利彩票25选5开奖号码 黄大仙二肖中特资料 cf手游蝴蝶刀觉醒材料怎么获得 剑网3指尖江湖先锋激活码 新疆喜乐彩怎么买 皇室战争卡组 德国勒沃库森市介绍 罗迪欧大道电子游艺 快乐12助手手机版 竞彩篮球大小分玩法 天龙八部手游珍兽称号 4399天天炫斗 多乐彩任5 财富之都返水 罗马第二季无删减在线看美剧天堂