标签:ssh
用户头像上传是使用Struts的上传功能,因此需要遵循Struts上传文件的方式。
基本步骤: 1. 在JSP中使用 HTML 表单上传文件, 须把 HTML 表单的 enctype 属性设置为 multipart/form-data, method 属性设置为 post。HTML表单中包含<input type=“file”> 使用户能选择上传文件。 2. Action 中添加三个文件上传相关的属性。 上传单个文件属性格式 属性一:类型为File,名字为页面file控件名 属性二:类型为String,名字为页面file控件名+ContentType 属性三:类型为String,名字为页面file控件名+FileName 3. 对上传的文件进行处理 |
1、JSP页面
addUI.jsp关键部分
<input type="file" name="headImg"/>
editUI.jsp关键部分
<s:if test="user.headImg != null && user.headImg !=‘‘ "> <img src="${basePath}/upload/<s:property value=‘user.headImg‘/>" width="100" height="100"/> <s:hidden name="user.headImg"/> </s:if> <input type="file" name="headImg"/>
在这里需要注意的地方就是:在编辑页面(editUI.jsp),要注意用户头像显示,因此进行了<s:if>的判断;同时,要注意将用户头像的地址使用<s:hidden>隐藏起来,否则再次保存时会丢失原头像地址。
2、UserAction处理
2.1、添加Field和Property
private File headImg; private String headImgContentType; private String headImgFileName; public File getHeadImg() { return headImg; } public void setHeadImg(File headImg) { this.headImg = headImg; } public String getHeadImgContentType() { return headImgContentType; } public void setHeadImgContentType(String headImgContentType) { this.headImgContentType = headImgContentType; } public String getHeadImgFileName() { return headImgFileName; } public void setHeadImgFileName(String headImgFileName) { this.headImgFileName = headImgFileName; }
2.2、修改add和edit方法
//保存新增 public String add() { try { if(user != null) { if(headImg != null) { //1、保存头像到upload/user String filePath = ServletActionContext.getServletContext().getRealPath("upload/user/"); String fileName = UUID.randomUUID().toString().replaceAll("-", "") + headImgFileName.substring(headImgFileName.lastIndexOf(".")); FileUtils.copyFile(headImg, new File(filePath,fileName)); //2、设置用户头像路径 user.setHeadImg("user/" + fileName); } userService.save(user); } } catch (Exception e) { e.printStackTrace(); } return "list"; } //保存编辑 public String edit() { try { if(user != null) { if(headImg != null) { //1、保存头像到upload/user String filePath = ServletActionContext.getServletContext().getRealPath("upload/user/"); String fileName = UUID.randomUUID().toString().replaceAll("-", "") + headImgFileName.substring(headImgFileName.lastIndexOf(".")); FileUtils.copyFile(headImg, new File(filePath,fileName)); //2、设置用户头像路径 user.setHeadImg("user/" + fileName); } userService.update(user); } } catch (Exception e) { e.printStackTrace(); } return "list"; }
标签:ssh
原文地址:http://lsieun.blog.51cto.com/9210464/1836404