现在多附件就是多个file文件,都保存在id="pu_files" 的file控件里
<tr>
<td height="50" align="right">附件<b></b></td>
<span style="background-color: rgb(204, 204, 204);"> <td id="pu_files"></span>
<input class='filebtn' type="button" value="添加附件" οnclick="addFile()"/>
</td>
<td> </td>
</tr>
注意包含file的上传,前台是需要加enctype="multipart/form-data" 的,如下的form标签
<form class="registerform" action="<%= request.getContextPath() %>/practiceUnit/regist" method="post" enctype="multipart/form-data">
后台:我们是springmvc
@RequestMapping(value = "/regist")
public String regist(Model model, PracticeUnit practiceUnit, HttpServletRequest request) throws IOException {
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
try {
model.addAttribute("pu_industry", this.getDictCodeNames("PRAC_UNIT_INDUSTTRY")); // 所属行业
model.addAttribute("pu_size", this.getDictCodeNames("PARC_UNIT_SIZE")); // 职工人数
String vertifyCode = request.getParameter("verifyCode");
HttpSession session = request.getSession();
if (!vertifyCode.equalsIgnoreCase(session.getAttribute("code").toString())) {
model.addAttribute("code_error", "验证码错误");
throw new Exception("验证码错误");
}
// 检查用户名是否已存在
User u = userService.getByLoginNameAndPassword(practiceUnit.getEmail(), null);
if (u != null) {
model.addAttribute("uname_error", "邮箱(用户名)已使用");
throw new Exception("邮箱(用户名)已使用");
}
} catch (Exception e) {
model.addAttribute("practiceUnit", practiceUnit);
e.printStackTrace();
return this.result(ResultType.JSP, "/company/regist");
}
String maxCode = practiceUnitService.getMaxCode();
if (maxCode == null) {
maxCode = "10000001"; // 8位编码
} else {
maxCode = String.valueOf(Integer.valueOf(maxCode) + 1);
}
practiceUnit.setCode(maxCode); // 实习单位编码
// 设置公司Logo
MultipartFile mFile = multipartRequest.getFile("headImg");
if (mFile != null && mFile.getSize() > 0) {
String fileName = "/upload/head/" + FileUtil.createtFileNameByDate(".jpg");
File img = new File(request.getSession().getServletContext().getRealPath("/") + fileName);
if (!img.getParentFile().exists()) {
img.getParentFile().mkdirs();
}
mFile.transferTo(img);
practiceUnit.setImg(fileName);
}
// 设置附件
List<MultipartFile> myfiles = multipartRequest.getFiles("myfiles");
String puFileName = "";
for (MultipartFile myfile : myfiles) {
if (myfile.isEmpty()) {
System.out.println("文件未上传");
} else {
// 如果用的是Tomcat服务器,则文件会上传到\\%TOMCAT_HOME%\\webapps\\YourWebProject\\WEB-INF\\upload\\文件夹中
String realPath = request.getSession().getServletContext().getRealPath("/upload/files/");
// 这里不必处理IO流关闭的问题,因为FileUtils.copyInputStreamToFile()方法内部会自动把用到的IO流关掉,我是看它的源码才知道的
FileUtils.copyInputStreamToFile(myfile.getInputStream(),
new File(realPath, myfile.getOriginalFilename()));
puFileName += "/upload/files/" + myfile.getOriginalFilename() + ",";
}
}
practiceUnit.setAttachment(puFileName);
practiceUnit.setPassword(MD5Util.getEncryptedPassword(practiceUnit.getPassword()).toLowerCase());
practiceUnit = practiceUnitService.save(practiceUnit);
// 默认 拥有实习单位的角色
UserRole userRole = new UserRole();
userRole.setRoleId(9L); // 角色ID:9为实习单位角色
userRole.setUserId(practiceUnit.getId());
userRoleService.save(userRole);
return this.result(ResultType.JSP, "/login");
}