SpringMVC 获得请求数据-文件上传

2.12 文件上传

1.文件上传客户端三要素

  • 表单项type="file"
  • 表单的提交方式是post
  • 表单的enctype属性是多部分表单方式,及enctype="multipart/form-data"
<form action="${pageContext.request.contextPath}/quick" method="post">
    enctype="multipart/form-data">
    名称:<input type="text" name="name"><br>
    文件:<input type="file" name="file"><br>
    <input type="submit" value="提交"><br>
</form>

2. 文件上传原理

  • 当form表单修改为多部分表单时,Request.getParameter()将失效
  • enctype=“application/x*www*form-urlencoded”时,form表单的正文内容格是:key=value&key=value&key=value
  • 当form表单的enctpe取值为Mutilpart/form-data时,请求正文内容就变成多部分形式

 

2.13 单文件上传步骤
  • 导入fileupload和io坐标
  • 配置文件上传解析器
  • 编写文件上传代码

 1.导入fileupload和io坐标

<dependency>
     <groupld>commons-fileupload</groupId>
     <artifactId>commons-fileupload</artifactId>
     <version>1.2.2</version>
</dependency>
<dependency>
     <groupld>commons-io</groupId>
     <artifactId>commons-io</artifactId>
     <version>2.4</version>
</dependency>

2.配置文件上传解析器

<bean id="mustipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
    <!--上传文件总大小-->
    <property name="maxUploadSize" value="5242800"/>
    <!--上传单个文件的大小-->
    <property name="maxUploadSizePerFile" value="5242800"/>
    <!--上传文件的编码类型-->
    <property name="defaultEncoding" value="UTF-8"/>
</bean>

3.编写文件上传代码

@RequestMapping("/quick")
@ResponseBody
public void quickMethod20(String name,MultipartFile uploadFile)throws IOException{
   //获得文件名称
   String originaFilename=uploadFile.getOriginalFilename();
   //保存文件
   pploadFile.transferTo(new File("C:\\upload\\"+originalFilename));
}
2.14 多文件上传实现

多文件上传,只需将页面修改为多个文件上传项,将方法参数MultipartFile类型修改为MultiparFile[]即可

<h1>多文件上传测试</h1>
<form action="${pageContext.request.contextPath}/quick" method="post" enctype="multipart/form-data">
    名称:<input type="text" name="name"><br>
    文件1:<input type="file" name="uploadFiles"><br>
    文件2:<input type="file" name="uploadFiles"><br>
    文件3:<input type="file" name="uploadFiles"><br>
    <input type="sumit" value="提交"><br>
</form>
@RequestMapping("/quick")
@ResponseBody
public void quickMethod(String name,MultpartFile[] urloadFiles)throws IOException{
    for(MultiparFile uploadFile : uploadFiles){
        String ringinalFilename=uploadFile.getOringinalFilename();
        pploadFile.transferTO(new File("C:\\upload\\"+originalFilename));
    }
}
2.15 知识要点

MVC实现数据请求方式

  • 基本类型参数
  • POJO类型参数
  • 数组类型参数
  • 集合类型参数

MVC获取数据细节

  • 中文乱码问题
  • @RequestParam和@PathVariable
  • 自定义类型转换器 
  • 获得Servlet相关APl
  • @RequestHeader和@CookieValue
  • 文件上传
  • 7
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值