@RequestPart和@RequestParam的应用(不同文件的上传方式)

不同文件上传方式:

requestpart和requestparam都是Spring MVC框架中用于接收HTTP请求参数的注解。

requestpart注解用于接收HTTP请求中的文件参数,通常用于文件上传功能。使用该注解时,需要在方法参数中声明MultipartFile类型的参数,Spring MVC框架会自动将上传的文件转换为MultipartFile类型的对象。

requestparam注解用于接收HTTP请求中的普通参数,如表单提交的文本参数。使用该注解时,需要在方法参数中声明与请求参数同名的参数,并可以通过该注解的value属性指定请求参数的名称。如果请求参数与方法参数名称不一致,也可以通过该注解的name属性指定请求参数的名称。

总之,requestpart和requestparam都是Spring MVC框架中用于接收HTTP请求参数的注解,但是requestpart用于接收文件参数,requestparam用于接收普通参数。

场景一:

DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Titletitle>
head>
<body>
    <form action="http://127.0.0.1:8000/product/minioUpload" method="post" enctype="multipart/form-data">
        头像:<input name="avatar" type="file"><br>
        生活照:<input name="life" type="file"><br>
        工作照:<input name="work" type="file"><br>
        <input type="submit" value="上传">
    form>
编写Controller层处理请求:
@RestController
@RequestMapping("/product")
public class MinioController {
    @PostMapping("minioUpload1")
    public RetVal minioUpload1(@RequestPart("avatar") MultipartFile avatar,
                              @RequestPart("life") MultipartFile life,
                              @RequestPart("work") MultipartFile work){
        return RetVal.ok();
    }

场景二:

    <form action="http://127.0.0.1:8000/product/minioUpload" method="post" enctype="multipart/form-data">
        头像:<input name="avatar" type="file"><br>
        生活照:<input name="life" type="file" multiple><br>
        <input type="submit" value="上传">
    form>

使用multiple对于一个文件域,上传多个文件时,后端使用数组去接收处理。

    @PostMapping("minioUpload2")
    public RetVal minioUpload2(@RequestPart("avatar") MultipartFile avatar,
                              @RequestPart("life") MultipartFile[] life){
        return RetVal.ok();
    }

场景三:

上传一个图片和一个文本域

 <form action="http://127.0.0.1:8000/product/minioUpload" method="post" enctype="multipart/form-data">
        头像:<input name="avatar" type="file"><br>
        生活照描述:<input name="lifeInfo" type="text"><br>
        <input type="submit" value="上传">
    form>

使用@RequestParam(“与前端属性名相同”)获取表单提交的文本参数。

   @PostMapping("minioUpload3")
	    public RetVal minioUpload3(@RequestPart("avatar") MultipartFile avatar,
	                              @RequestParam("lifeInfo") String lifeInfo){
	        return RetVal.ok();

场景四:

上传多个属性名相同的文件。

    <form action="http://127.0.0.1:8000/product/minioUpload" method="post" enctype="multipart/form-data">
        头像:<input name="avatar" type="file"><br>
        生活照:<input name="avatar" type="file"><br>
        <input type="submit" value="上传">
    form>
body>
html>

使用@RequestPart(“文件属性名”) 使用MultipartFile[] 去接收。


    @PostMapping("minioUpload")
    public RetVal minioUpload(@RequestPart("avatar") MultipartFile[] avatar){
        return RetVal.ok();
    }
}

你可能感兴趣的:(项目实战总结,java)