码迷,mamicode.com
首页 > Web开发 > 详细

SSH系列:(10)用户管理-用户头像上传

时间:2016-08-10 14:42:17      阅读:233      评论:0      收藏:0      [点我收藏+]

标签: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系列:(10)用户管理-用户头像上传

标签:ssh

原文地址:http://lsieun.blog.51cto.com/9210464/1836404

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!