客户端表单实现
文件上传的三要素 表单项 type=“file”
表单的提交方式是post
表单的enctype属性是多部份表单形势, 及 enctype=“multipart/form-data”
文章图片
创建一个upload.jsp文件
Title - 锐客网
文章图片
文件上传原理 当form表单修改为多部份表单时,request.getParameter()将失效
enctype="multipart/form-data"
时, form表单的正文内容格式是: key=value&key=value&key=value
当form表单的enctype取值为multipart/form-data时, 请求正文内容就变成多部份形式
文章图片
单文件上传
- 导入fileupload和io坐标
- 配置文件上传解析器
- 编写文件上传代码
commons-fileupload
commons-fileupload
1.3.1
commons-io
commons-io
2.3
配置文件上传解析器, 在spring-mvc.xml上配置
编写文件上传代码
@Controller
@RequestMapping("/user")
public class UserController {@RequestMapping(value = "https://www.it610.com/quick22")//请求映射
@ResponseBody
public void save22(String username, MultipartFile uploadFile) throws IOException {
System.out.println(username);
System.out.println(uploadFile);
}
}
文章图片
文章图片
如想把获得的文件转移到服务器或本机的某磁盘上
//获得文件上传名称
String originalFilename = uploadFile.getOriginalFilename();
uploadFile.transferTo(new File("E:\\upload\\"+originalFilename));
多文件上传 在单文件上传的基础上加就行了
Title - 锐客网
@RequestMapping(value = "https://www.it610.com/quick22")//请求映射
@ResponseBody
public void save22(String username, MultipartFile uploadFile, MultipartFile uploadFile2) throws IOException {
//获得文件上传名称
String originalFilename = uploadFile.getOriginalFilename();
uploadFile.transferTo(new File("E:\\upload\\"+originalFilename));
//获得文件上传名称
String originalFilename2 = uploadFile.getOriginalFilename();
uploadFile.transferTo(new File("E:\\upload\\"+originalFilename2));
}
【Spring|SpringMVC获得请求数据-文件上传】如果上传的文件过多, 可以采用数组结合循环遍历的方式
@RequestMapping(value = "https://www.it610.com/quick23")//请求映射
@ResponseBody
public void save23(String username, MultipartFile[] uploadFile) throws IOException {
System.out.println(username);
for (MultipartFile multipartFile : uploadFile) {
String originalFilename = multipartFile.getOriginalFilename();
multipartFile.transferTo(new File("E:\\upload\\" + originalFilename));
}
}
推荐阅读
- SpringMVC|SpringMVC文件上传和文件下载
- 大数据|《2022年道德黑客洞察报告》(不少人计划当全职漏洞猎人)
- 单元测试|又一个 4w Star 的大厂开源项目不维护了!
- 网络|开源linux_对技术的热爱导致Linux和开源
- 每日一篇-8.1-Synchronized, Volatile, Lock区别
- JDK动态代理
- golang详解|【Golang详解】深入了解map
- Golang|深入理解Golang之context
- Android云音乐|3.Android高仿网易云音乐-首页复杂发现界面布局和功能