多文件上传到本地服务器
支持单个或者多个文件上传, 可以直接拷贝使用运行
Controller:
@Value("${profile}")
String SPURL;
@RequestMapping(value = "/batch/upload",method = RequestMethod.POST)
public @ResponseBody String uploads(HttpServletRequest request,MultipartFile[] file) {
try {
//上传目录地址
String uploadDir = SPURL;
//如果目录不存在,自动创建文件夹
File dir = new File(uploadDir);
if (!dir.exists()) {
dir.mkdir();
}
//遍历文件数组执行上传
for (int i = 0; i < file.length; i++) {
if (file[i] != null) {
//调用上传方法
executeUpload(uploadDir, file[i]);
}
}
} catch (Exception e) {
return "上传失败,请上传正确的视频并且上传大小在50MB之内!";
}
return "上传成功";
}
private void executeUpload(String uploadDir,MultipartFile file) throws Exception {
//文件后缀名
String suffix = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."));
/**
* 如果是上传其他的文件例如图片,可以取消if判断
*/
if (!suffix.equals(".mp4")
||suffix.equals(".vob")
||suffix.equals(".DVD")
||suffix.equals(".mpg")
||suffix.equals(".mpeg")
||suffix.equals(".dat")
||suffix.equals(".3gp")
||suffix.equals(".mov")
||suffix.equals(".rm")
||suffix.equals(".ram")
||suffix.equals(".rmvb")
||suffix.equals(".asf")
||suffix.equals(".asx")
||suffix.equals(".dvd")
||suffix.equals(".flv")
||suffix.equals(".wmv")
||suffix.equals(".ogm")
||suffix.equals(".avi")
)
throw new Exception("上传失败,请上传正确的视频并且上传大小在50MB之内!");
//上传文件名
String filename = UUID.randomUUID() + suffix;
//服务器端保存的文件对象
File serverFile = new File(uploadDir + filename);
//将上传的文件写入到服务器端文件内
file.transferTo(serverFile);
}
@Bean
public MultipartConfigElement multipartConfigElement() throws Exception{
MultipartConfigFactory factory = new MultipartConfigFactory();
//文件最大KB,MB
factory.setMaxFileSize("50MB");
//设置总上传数据总大小
factory.setMaxRequestSize("50MB");
return factory.createMultipartConfig();
}
application.yml:
profile: E:/Project_1/PublicService/sth/
index.html:
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<title>title</title>
</head>
<body>
<form action="/from/batch/upload" method="post" enctype="multipart/form-data" >
<input id="file" type="file" multiple="multiple" name="file" />
<input type="submit" value="提交" />
</form>
</body>
</html>