java spring formdata_Spring MVC处理Multipart/form-data的方法介绍(代码示例)

本篇文章给大家带来的内容是关于Spring MVC处理Multipart/form-data的方法介绍(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

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,它的英文全称是"Multipurpose Internet Mail Extensions" 多功能Internet 邮件扩充服务,它是一种多用途网际邮件扩充协议。通过MIME,浏览器的再请求,会告诉服务器接收的数据是什么类型.

Spring MVC 处理 Multipart/form-data

两种实现方式:

1、CommonsMultipartResolver : 依赖于Apache

2、StandardServletMultipartResolver : 依赖于Servlet 3.0 ,SpringBoot默认支持该方式

一、配置解析器

1、CommonsMultipartResolver 的配置

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

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

class="org.springframework.web.multipart.commons.CommonsMultipartResolver">

    ·

2、StandardServletMultipartResolver 的配置

(1)声明Bean:

class="org.springframework.web.multipart.support.StandardServletMultipartResolver”>@Bean(name = "multipartResolver")

public StandardServletMultipartResolver getStandardServletMultipartResolver(){

return new StandardServletMultipartResolver();

}

(2) 配置上传参数

web.xml 配置

dispatcherServlet

org.springframework.web.servlet.DispatcherServlet

contextConfigLocation

classpath:applicationContext.xml

1

/temp/upload

2097152

4194304

0

dispatcherServlet

/

配置类中配置

二、Spring MVC 处理

1、表单:

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;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring MVC中的@RequestMapping注解可以用于处理HTTP请求,并将请求的参数绑定到处理方法的参数上。而在处理上传文件的情况下,可以使用@RequestPart注解将文件绑定到处理方法的参数上。 @RequestPart注解用于将请求的某个部分(如文件)绑定到处理方法的参数上。它通常与@RequestParam一起使用,用于处理HTTP POST请求中的FormData部分或者Multipart请求中的文件部分。 使用@RequestPart注解时,需要注意以下几点: 1. @RequestPart注解的参数可以是任何类型,但通常使用MultipartFile或者byte[]来表示文件类型。 2. 需要注意的是,如果@RequestPart注解的参数类型不是MultipartFile或者byte[],则需要使用consumes参数指定媒体类型为"multipart/form-data"。 3. 在处理方法中,使用@RequestPart注解的参数将自动绑定到请求中与参数名称匹配的部分。例如,如果请求中有一个名为file的文件部分,那么使用@RequestPart("file") MultipartFile file将绑定该文件部分到file参数上。 4. 如果请求中没有与参数名称匹配的部分,那么将会抛出异常。 下面是一个使用@RequestPart注解处理文件上传的例子: ```java @Controller @RequestMapping("/upload") public class UploadController { @PostMapping("/file") public String uploadFile(@RequestPart("file") MultipartFile file) { // 处理文件上传逻辑 return "success"; } } ``` 在上面的例子中,我们使用@RequestPart注解将名为file的文件部分绑定到MultipartFile类型的file参数上。处理方法可以根据具体的业务逻辑,对上传的文件进行处理。 总而言之,使用@RequestPart注解可以很方便地处理上传文件的情况,将请求的文件部分绑定到处理方法的参数上,方便进行文件上传的业务逻辑处理
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值