1、在jsp的form表单中加入一个属性enctype="multipart/form-data",body中的代码具体如下:
<body>
<!--上传图片必须要有:enctype="multipart/form-data" -->
<form action="addNewsWithPicture" method="post" enctype="multipart/form-data">
新闻标题:<input name="title"/><br/> <br/>
新闻内容:<textarea rows="7" cols="30" name="content"></textarea><br/>
新闻时间:<input name="buildDate"
οnfοcus="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss'})"
readonly="readonly" />
<br/>
<!--上传图片为的type为file,name的值要和
@RequestParam(value = "picFile", required = false)中的value值相等 -->
图 片1:<input type="file" name="picFile"/> <br/>
图 片 2:<input type="file" name="picFile"/>
<font color="red">${uploadFileError}</font>
<br/>
<input type="submit" value="添加新闻"/> <br/>
</form>
</body>
2、controller中的方法
// 添加图片
@RequestMapping("/addNewsWithPicture")
public String addNewsWithPicture(NewsInfo newsInfo, HttpServletRequest request,
@RequestParam(value = "picFile", required = false)
MultipartFile[] picFiles) {
// 固定代码开始-----------------------
String viewName = "addNews";//这里为添加界面jsp的名字
String fileName = null;
for (int i = 0; i < picFiles.length; i++) {
MultipartFile picFile = picFiles[i];
// 判断文件是否为空
if (!picFile.isEmpty()) {
String path = request.getSession().getServletContext()
.getRealPath("statics" + File.separator + "uploadfiles");
String oldFileName = picFile.getOriginalFilename();// 获取文件的原名字
String prefix = FilenameUtils.getExtension(oldFileName);// 原文件后缀
int filesize = 5000000;
if (picFile.getSize() > filesize) {// 上传大小不得超过 500k
request.setAttribute("uploadFileError", " * 上传大小不得超过 500k");
// 超过大小不允许跳转,直接返回以前的视图页面
return viewName;
} else if (prefix.equalsIgnoreCase("jpg") || prefix.equalsIgnoreCase("png")
|| prefix.equalsIgnoreCase("gif") || prefix.equalsIgnoreCase("jpeg")) {// 上传图片格式不正确
fileName = "head_" + System.currentTimeMillis() + RandomUtils.nextInt(1000000) + "." + prefix;
File targetFile = new File(path, fileName);
if (!targetFile.exists()) {
targetFile.mkdirs();
}
// 保存
try {
picFile.transferTo(targetFile);
} catch (Exception e) {
e.printStackTrace();
request.setAttribute("uploadFileError", " * 上传失败!");
return viewName;
}
} else {
request.setAttribute("uploadFileError", " * 上传图片格式不正确");
return viewName;
}
if (i == 0) {
newsInfo.setPicName(fileName);
} else if (i == 1) {
newsInfo.setImgName(fileName);
}
}
} // 固定代码结束----------------------------------
if(newsService.insertSelective(newsInfo)>0){
return "redirect:showNewsList";
}
return viewName;
}