在添加用户表单中添加文件输入框
<div>
<label for="a_idPicPath">证件照:</label>
<input type="file" name="a_idPicPath" id="a_idPicPath">
<font class="red"></font>
</div>
在form标签中添加enctype属性
<form id="userForm" name="userForm" method="post" enctype="multipart/form-data"
action="${pageContext.request.contextPath }/sys/user/useraddsave.html">
1.导入jar包

在springmvc-serlvet配置文件中进行配置,使jar包生效
<!-- 配置MultipartResolver,用于上传文件,使用spring的CommonsMultipartResolver -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize" value="5000000"/>
<property name="defaultEncoding" value="utf-8"/>
</bean>
检查数据库中的表和实体类中的字段是否存在


在control中写处理请求的方法
if(!attach.isEmpty()){
//创建一个File对象
String originalPath=session.getServletContext().getRealPath("statics"+File.separator+"uploadFiles");
//文件名 文件名称+后缀 比如 旧的文件名 dog.png 新文件名: 前缀不要重复 后缀要同旧文件的后缀
String newFileName=null;
String oldFileName=attach.getOriginalFilename();
String suffix = FilenameUtils.getExtension(oldFileName);
if(suffix.equalsIgnoreCase("png") ||
suffix.equalsIgnoreCase("jsp") ||
suffix.equalsIgnoreCase("gif")){
System.out.println("该文件是一个图片格式");
long prefix=System.currentTimeMillis()+ RandomUtils.nextLong();//22234343434233433_idPic.png
newFileName=prefix+"_idPic."+suffix;
File targetFile=new File(originalPath,newFileName);
//创建该对象的目录和空文件
if(!targetFile.exists()){
targetFile.mkdirs();
}
//将attach中的数据信息,转移到该文件对象中
try {
attach.transferTo(targetFile);
} catch (IOException e) {
e.printStackTrace();
}
}else {
System.out.println("该文件不是图片,不符合要求");
}
//将目标文件的路径保存到数据库中 a/b/d photo.png File.separator等价 /
String targetPath=originalPath+File.separator+newFileName;
user.setIdPicPath(targetPath);
}else {
System.out.println("该对象MultipartFile 为空");
}
int count=this.userService.addUser(user);
if(count>0){//添加成功
return "redirect:/sys/user/userlist.html";
}else{
return "user/useradd";//逻辑视图名
}
在mapper映射文件中,添加字段 idPicPath
<!--添加用户-->
<insert id="addUser" parameterType="User">
insert into smbms_user(idPicPath)
values(#{idPicPath})
</insert>
这篇博客详细介绍了在SpringMVC环境下如何实现文件上传和下载功能,包括在用户表单中添加文件输入框,设置form标签的enctype属性,导入所需jar包,配置springmvc-servlet.xml文件,确保jar包生效,检查数据库和实体类,编写Controller处理请求,Mapper映射文件中添加字段,以及功能测试,验证数据中路径正确性和本地图片的存在。

被折叠的 条评论
为什么被折叠?



