标签: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