提交
[](()2、后台控制层代码
========================================================================
[@RequestParam和@RequestPart 的区别:](()
-
1.@RequestPart这个注解用在multipart/form-data表单提交请求的方法上。
-
2.支持的请求方法的方式MultipartFile,属于Spring的MultipartResolver类。这个请求是通过http协议传输的。
-
3.@RequestParam也同样支持multipart/form-data请求。
-
4.他们最大的不同是,当请求方法的请求参数类型不再是String类型的时候。
-
5.@RequestParam适用于name-valueString类型的请求域,@RequestPart适用于复杂的请求域(像JSON,XML)。
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.io.IOException;
@Slf4j
@Controller
public class FormTestController {
@GetMapping(“/form_layouts”)
public String form_layouts(){
return “form/form_layouts”;
}
@PostMapping(“/upload”)
public String upload(@RequestParam(“email”) String email,
@RequestParam(“username”) String username,
@RequestPart(“headerImg”) MultipartFile headerImg,
@RequestPart(“photos”) MultipartFile[] photos) throws IOException {
//控制台打印输出前端表单的信息
log.info(“上传的信息:email={},username={},headerImg={},photos={}”,
email,username,headerImg,photos);
//上传单个文件
if(!headerImg.isEmpty()){
//将数据保存到文件服务器
String originalFilename = headerImg.getOriginalFilename(); 《大厂前端面试题解析+Web核心总结学习笔记+企业项目实战源码+最新高清讲解视频》无偿开源 徽信搜索公众号【编程进阶路】
headerImg.transferTo(new File(“E:”+originalFilename));
}
//同时上传多个文件
if(photos.length>0){//判断photots是否为空
for(MultipartFile photo : photos){//photos中存在文件,遍历photos中的每一个文件photo
if(!photo.isEmpty()){//判断photo是否为空
String originalFilename = photo.getOriginalFilename();//如果photo有值,获取文件名
//将上传的文件保存到目标路径下
photo.transferTo(new File(“E:cache” + originalFilename));
}
}
}
return “main”;



