第一种:单文件上传
前端:form表单进行提交
<form method="post" action="testFileUpload1" enctype="multipart/form-data">
<input type="file" name="file">
<input type="submit" value="单文件上传">
</form>
后端:使用MultipartFile接口进行接收
//单文本上传
@RequestMapping(value = "/testFileUpload1", method = RequestMethod.POST)
public String testFileUpload1(MultipartFile file) throws IOException {
//获取文件名称
String filename = file.getOriginalFilename();
System.out.println("文件名称:" + filename);
//获取文件格式
String suffix = filename.substring(filename.lastIndexOf(".", filename.length()));
System.out.println("文件格式:" + suffix);
//使用UUID对文件名进行编译(将新文件名和文件格式进行拼接)
filename = UUID.randomUUID() + suffix;
System.out.println("新文件名称:" + filename);
//将文件保存到本地硬盘
file.transferTo(new File("d:/" + filename));
return "ok";//前端跳转页面
}
后端:判空操作使用:
1、file.isEmpty() :判断是否为空 和
2、file.getSize() :判断文件长度
if (file.isEmpty() || file.getSize() <= 0) {
System.out.println("file长度:" + file.getSize());
System.out.println("file是否为空:" + file.isEmpty());
return "error";//传输为空时,转到新页面
} else {
//不为空时运行的正常运行代码
}
第二种:多文件上传
前端:
<form method="post" action="testFileUpload" enctype="multipart/form-data">
<input type="file" name="file">
<input type="file" name="file">
<input type="submit" value="多文件上传">
</form>
后端:
public String testFileUpload(MultipartFile[] file, HttpServletRequest request) throws IOException {
for (MultipartFile multipartFile : file) {
//获取文件名称
String filename = multipartFile.getOriginalFilename();
System.out.println("文件名称:" + filename);
//获取文件格式
String suffix = filename.substring(filename.lastIndexOf(".", filename.length()));
System.out.println("文件格式:" + suffix);
//使用UUID对文件名进行编译(将新文件名和文件格式进行拼接)
filename = UUID.randomUUID() + suffix;
System.out.println("新文件名称:" + filename);
// 将文件资源动态的保存到服务器中
String realPath = request.getServletContext().getRealPath("/");
System.out.println("服务器地址:" + realPath);
//将文件保存到Tomcat服务器
multipartFile.transferTo(new File(realPath + "/" + filename));
//将文件保存到本地硬盘
// file.transferTo(new File("d:/"+filename));
}
return "ok";
}
后端判空操作:
1、file == null :判断文件是否为空
2、 file.length == 0 :判断文件长度是否为0
3、file[i].isEmpty() :判断file数组各个下标的数据是否为空(每一个文件都判断是否为空)
if (file == null || file.length == 0 || file[0].isEmpty()) {
//处理为空时的操作
}else{
// 处理后续文件
for (int i = 1; i < file.length; i++) {
if (file[i].isEmpty()) {
// 对后续文件为空的情况做出处理
return "error";
} else {
// 处理后续文件
// ...
}
}
----------个人学习笔记----------