1.单文件上传
public String upload(MultipartFile file) {
try {
if(file.isEmpty()) {
return "file is empty";
}
//文件名称含后缀
String fileName = file.getOriginalFilename();
//文件夹名称
String name = fileName.substring(0,fileName.lastIndexOf("."));
String suffixName = fileName.substring(fileName.lastIndexOf("."));
log.info("上传的文件名为:"+fileName+" 后缀名为:"+suffixName);
//文件在服务器中存储路径
String filePath = "存储文件的路径" + name + "\\";
String path = filePath + fileName;
File dest = new File(path);
//检测存储文件夹时候存在
if(!dest.getParentFile().exists()) {
dest.getParentFile().mkdirs();//新建文件夹
}
file.transferTo(dest);//文件写入
return "upload success";
} catch (IllegalStateException e) {
// TODO: handle exception
e.printStackTrace();
}catch (IOException e) {
// TODO: handle exception\
e.printStackTrace();
}
return "upload failure";
}
2.多文件上传:
public String handleFileUpload(HttpServletRequest request) {
List<MultipartFile> files = ((MultipartHttpServletRequest) request).getFiles("file");
MultipartFile file = null;
BufferedOutputStream stream = null;
for(int i=0;i<files.size();i++) {
file = files.get(i);
//文件名称含后缀
String fileName = file.getOriginalFilename();
//文件夹名称
String name = fileName.substring(0,fileName.lastIndexOf("."));
//文件在服务器存储路径
String filePath = "文件存储路径" + name + "\\";
if(!file.isEmpty()) {
try {
File dest = new File( filePath + fileName);
//判断文件夹是否存在
if(!dest.getParentFile().exists()) {
dest.getParentFile().mkdirs();//新建文件夹
}
byte[] bytes = file.getBytes();
stream = new BufferedOutputStream((new FileOutputStream(dest)));
stream.write(bytes);//写入
stream.close();
} catch (Exception e) {
// TODO: handle exception
stream = null;
return "the" + i + "file upload failure";
}
}else {
return "the" + i + "file is empty";
}
}
return "upload multifile success";
}