1、导入文件上传所必需的jar包
2、配置springmvc.xml文件
<!-- 控制文件上传 -->
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="defaultEncoding" value="utf-8" />
<property name="maxInMemorySize" value="10240" />
<property name="maxUploadSize" value="-1" />
</bean>
3、在控制层中的相关内容
@RequestMapping(value = "/insertUserInfo", method = RequestMethod.POST)
public int insertInfo(Integer u_id, String name, String sex, String e_mail, MultipartFile photo,
HttpServletRequest request) throws IllegalStateException, IOException {
UserInfo userInfo = new UserInfo();
// 图片上传成功后,将图片的地址写到数据库
String filePath = "D:/upload";
;// 保存图片的路径,tomcat中有配置
// 获取原始图片的拓展名
String originalFilename = photo.getOriginalFilename();
// 新的文件名字,使用uuid随机生成数+原始图片名字,这样不会重复
String newFileName = UUID.randomUUID() + originalFilename;
// 封装上传文件位置的全路径,就是硬盘路径+文件名
File targetFile = new File(filePath, newFileName);
// 把本地文件上传到已经封装好的文件位置的全路径就是上面的targetFile
if (!targetFile.exists()) {
targetFile.mkdirs();
}
photo.transferTo(targetFile);
userInfo.setU_id(u_id);
userInfo.setName(name);
userInfo.setSex(sex);
userInfo.setE_mail(e_mail);
userInfo.setPhoto(newFileName);
return userService.insertUserInfo(userInfo);
}
4、比较重要的一步是要在tomcat中server.xml文件中配置文件的上传位置,不然浏览器会报错
5、在前端上传并显示
上传:
表单上传,enctype=“multipart/form-data” ,必需要写
显示:
在datagrid中显示图像时,可能会出现图像显示不全的问题,解决办法如下:
通过列的方法styler来设置图像高度