j.jsp页面:
<form method="post" class="form-x" action="upload" enctype="multipart/form-data">
Controller:
@RequestMapping(value = "/upload", method = RequestMethod.POST)
public String upload(HttpServletRequest request,
@RequestParam(value="taskid") int taskid, //参数名与页面中的name相同
@RequestParam(value = "uploadfile", required = false)
MultipartFile[] uploadfile)
{
String currentID=(String) request.getSession().getAttribute("id");
String road=Config.task+taskid+"/"+currentID;
UploadUtils up = new UploadUtils();
if(up.uploadUtils(uploadfile, road))
{
//获得当前用户id
System.out.println("$$$$$"+taskid);
//根据作业ID,和用户ID。修改result表中的submit状态
Result result = new Result();
result.setStuId(currentID);
result.setTaskId(taskid);
result.setSubmit(true);
try {
resultService.updateResult(result);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return"redirect:/joblist"; //返回作业列表
}
工具类中的函数:
//上传,road是文件存放路径
public boolean uploadUtils(MultipartFile[] uploadfile,String road){
if(uploadfile!=null && uploadfile.length > 0)
{
for(MultipartFile file:uploadfile)
{
//设置上传文件位置
String uploadpath = file.getOriginalFilename(); //获取文件名
System.out.println("hahahah"+uploadpath);
//创建文件夹
File uploadtargetFile = new File(road,uploadpath);
//判断文件是否存在
isExists(uploadtargetFile);
//保存文件
if (saveFile(file, uploadtargetFile))
{
return true;
}
else
{
return false;
}
}
}
return false;
}
//判断该路径下文件是否存在
private boolean isExists(File uploadtargetFile)
{
if (!uploadtargetFile.exists())
{
uploadtargetFile.mkdirs();
return true;
}
else{
System.out.println("文件已存在");
return false;
}
}
//保存文件
private boolean saveFile(MultipartFile file, File uploadtargetFile)
{
// 判断文件是否为空
if (!file.isEmpty()) {
try {
file.transferTo(uploadtargetFile); //写入文件
return true;
} catch (Exception e) {
e.printStackTrace();
}
}
return false;
}