struts 头像上传

java代码:

1 package cn.itcast.nsfw.user.action;
  2
  3 import java.io.File;
  4 import java.io.IOException;
  5 import java.util.List;
  6 import java.util.UUID;
  7
  8 import javax.annotation.Resource;
  9
 10 import org.apache.commons.io.FileUtils;
 11 import org.apache.struts2.ServletActionContext;
 12
 13 import cn.itcast.nsfw.user.entity.User;
 14 import cn.itcast.nsfw.user.service.UserService;
 15
 16 import com.opensymphony.xwork2.ActionSupport;
 17
 18 public class UserAction extends ActionSupport {
 19
 20     @Resource
 21     private UserService userService;
 22     private List<User> userList;
 23     private User user;
 24     private String[] selectedRow;
 25     private File headImg;
 26     private String headImgContentType;
 27     private String headImgFileName;
 28
 29     //列表页面
 30     public String listUI(){
 31         userList = userService.findObjects();
 32         return "listUI";
 33     }
 34     //跳转到新增页面
 35     public String addUI(){
 36         return "addUI";
 37     }
 38     //保存新增
 39     public String add(){
 40         try {
 41             if(user != null){
 42                 //处理头像
 43                 if(headImg != null){
 44                     //1、保存头像到upload/user
 45                     //获取保存路径的绝对地址
 46                     String filePath = ServletActionContext.getServletContext().getRealPath("upload/user");
 47                     String fileName = UUID.randomUUID().toString().replaceAll("-", "") + headImgFileName.substring(headImgFileName.lastIndexOf("."));
 48                     //复制文件
 49                     FileUtils.copyFile(headImg, new File(filePath, fileName));
 50
 51                     //2、设置用户头像路径
 52                     user.setHeadImg("user/" + fileName);
 53                 }
 54                 userService.save(user);
 55             }
 56         } catch (Exception e) {
 57             e.printStackTrace();
 58         }
 59         return "list";
 60     }
 61     //跳转到编辑页面
 62     public String editUI(){
 63         if (user != null && user.getId() != null) {
 64             user = userService.findObjectById(user.getId());
 65         }
 66         return "editUI";
 67     }
 68     //保存编辑
 69     public String edit(){
 70         try {
 71             if(user != null){
 72                 //处理头像
 73                 if(headImg != null){
 74                     //1、保存头像到upload/user
 75                     //获取保存路径的绝对地址
 76                     String filePath = ServletActionContext.getServletContext().getRealPath("upload/user");
 77                     String fileName = UUID.randomUUID().toString().replaceAll("-", "") + headImgFileName.substring(headImgFileName.lastIndexOf("."));
 78                     //复制文件
 79                     FileUtils.copyFile(headImg, new File(filePath, fileName));
 80
 81                     //2、设置用户头像路径
 82                     user.setHeadImg("user/" + fileName);
 83                 }
 84
 85                 userService.update(user);
 86             }
 87         } catch (Exception e) {
 88             e.printStackTrace();
 89         }
 90         return "list";
 91     }
 92     //删除
 93     public String delete(){
 94         if(user != null && user.getId() != null){
 95             userService.delete(user.getId());
 96         }
 97         return "list";
 98     }
 99     //批量删除
100     public String deleteSelected(){
101         if(selectedRow != null){
102             for(String id: selectedRow){
103                 userService.delete(id);
104             }
105         }
106         return "list";
107     }
108     public List<User> getUserList() {
109         return userList;
110     }
111     public void setUserList(List<User> userList) {
112         this.userList = userList;
113     }
114     public User getUser() {
115         return user;
116     }
117     public void setUser(User user) {
118         this.user = user;
119     }
120     public String[] getSelectedRow() {
121         return selectedRow;
122     }
123     public void setSelectedRow(String[] selectedRow) {
124         this.selectedRow = selectedRow;
125     }
126     public File getHeadImg() {
127         return headImg;
128     }
129     public void setHeadImg(File headImg) {
130         this.headImg = headImg;
131     }
132     public String getHeadImgContentType() {
133         return headImgContentType;
134     }
135     public void setHeadImgContentType(String headImgContentType) {
136         this.headImgContentType = headImgContentType;
137     }
138     public String getHeadImgFileName() {
139         return headImgFileName;
140     }
141     public void setHeadImgFileName(String headImgFileName) {
142         this.headImgFileName = headImgFileName;
143     }
144
145 }

头像上传jsp页面(采用struts标签)

 1 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
 2 <html>
 3 <head>
 4     <%@include file="/common/header.jsp"%>
 5     <title>用户管理</title>
 6     <script type="text/javascript" src="${basePath }js/datepicker/WdatePicker.js"></script>
 7 </head>
 8 <body class="rightBody">
 9 <form id="form" name="form" action="${basePath }nsfw/user_add.action" method="post" enctype="multipart/form-data">
10     <div class="p_d_1">
11         <div class="p_d_1_1">
12             <div class="content_info">
13     <div class="c_crumbs"><div><b></b><strong>用户管理</strong>&nbsp;-&nbsp;新增用户</div></div>
14     <div class="tableH2">新增用户</div>
15     <table id="baseInfo" width="100%" align="center" class="list" border="0" cellpadding="0" cellspacing="0"  >
16         <tr>
17             <td class="tdBg" width="200px">所属部门:</td>
18             <td><s:select name="user.dept" list="#{‘部门A‘:‘部门A‘,‘部门B‘:‘部门B‘ }"/></td>
19         </tr>
20         <tr>
21             <td class="tdBg" width="200px">头像:</td>
22             <td>
23                 <input type="file" name="headImg"/>
24             </td>
25         </tr>
26         <tr>
27             <td class="tdBg" width="200px">用户名:</td>
28             <td><s:textfield name="user.name"/> </td>
29         </tr>
30         <tr>
31             <td class="tdBg" width="200px">帐号:</td>
32             <td><s:textfield name="user.account"/></td>
33         </tr>
34         <tr>
35             <td class="tdBg" width="200px">密码:</td>
36             <td><s:textfield name="user.password"/></td>
37         </tr>
38         <tr>
39             <td class="tdBg" width="200px">性别:</td>
40             <td><s:radio list="#{‘true‘:‘男‘,‘false‘:‘女‘}" name="user.gender"/></td>
41         </tr>
42         <tr>
43             <td class="tdBg" width="200px">角色:</td>
44             <td></td>
45         </tr>
46         <tr>
47             <td class="tdBg" width="200px">电子邮箱:</td>
48             <td><s:textfield name="user.email"/></td>
49         </tr>
50         <tr>
51             <td class="tdBg" width="200px">手机号:</td>
52             <td><s:textfield name="user.mobile"/></td>
53         </tr>
54         <tr>
55             <td class="tdBg" width="200px">生日:</td>
56             <td><s:textfield id="birthday" name="user.birthday" readonly="true" onfocus="WdatePicker({‘skin‘:‘whyGreen‘,‘dateFmt‘:‘yyyy-MM-dd‘});" /></td>
57         </tr>
58         <tr>
59             <td class="tdBg" width="200px">状态:</td>
60             <td><s:radio list="#{‘1‘:‘有效‘,‘0‘:‘无效‘}" name="user.state" value="1"/></td>
61         </tr>
62         <tr>
63             <td class="tdBg" width="200px">备注:</td>
64             <td><s:textarea name="user.memo" cols="75" rows="3"/></td>
65         </tr>
66     </table>
67     <div class="tc mt20">
68         <input type="submit" class="btnB2" value="保存" />
69         &nbsp;&nbsp;&nbsp;&nbsp;
70         <input type="button"  onclick="javascript:history.go(-1)" class="btnB2" value="返回" />
71     </div>
72     </div></div></div>
73 </form>
74 </body>
75 </html>

头像编辑页面:

 1 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
 2 <html>
 3 <head>
 4     <%@include file="/common/header.jsp"%>
 5     <title>用户管理</title>
 6     <script type="text/javascript" src="${basePath }js/datepicker/WdatePicker.js"></script>
 7 </head>
 8 <body class="rightBody">
 9 <form id="form" name="form" action="${basePath }nsfw/user_edit.action" method="post" enctype="multipart/form-data">
10     <div class="p_d_1">
11         <div class="p_d_1_1">
12             <div class="content_info">
13     <div class="c_crumbs"><div><b></b><strong>用户管理</strong>&nbsp;-&nbsp;编辑用户</div></div>
14     <div class="tableH2">编辑用户</div>
15     <table id="baseInfo" width="100%" align="center" class="list" border="0" cellpadding="0" cellspacing="0"  >
16         <tr>
17             <td class="tdBg" width="200px">所属部门:</td>
18             <td><s:select name="user.dept" list="#{‘部门A‘:‘部门A‘,‘部门B‘:‘部门B‘ }"/></td>
19         </tr>
20         <tr>
21             <td class="tdBg" width="200px">头像:</td>
22             <td>
23                 <s:if test="%{user.headImg != null && user.headImg != ‘‘}">
24                     <img src="${basePath }upload/<s:property value=‘user.headImg‘/>" width="100" height="100"/>
25                     <s:hidden name="user.headImg"/>
26                 </s:if>
27                 <input type="file" name="headImg"/>
28             </td>
29         </tr>
30         <tr>
31             <td class="tdBg" width="200px">用户名:</td>
32             <td><s:textfield name="user.name"/> </td>
33         </tr>
34         <tr>
35             <td class="tdBg" width="200px">帐号:</td>
36             <td><s:textfield name="user.account"/></td>
37         </tr>
38         <tr>
39             <td class="tdBg" width="200px">密码:</td>
40             <td><s:textfield name="user.password"/></td>
41         </tr>
42         <tr>
43             <td class="tdBg" width="200px">性别:</td>
44             <td><s:radio list="#{‘true‘:‘男‘,‘false‘:‘女‘}" name="user.gender"/></td>
45         </tr>
46         <tr>
47             <td class="tdBg" width="200px">角色:</td>
48             <td></td>
49         </tr>
50         <tr>
51             <td class="tdBg" width="200px">电子邮箱:</td>
52             <td><s:textfield name="user.email"/></td>
53         </tr>
54         <tr>
55             <td class="tdBg" width="200px">手机号:</td>
56             <td><s:textfield name="user.mobile"/></td>
57         </tr>
58         <tr>
59             <td class="tdBg" width="200px">生日:</td>
60             <td>
61             <s:textfield id="birthday" name="user.birthday" readonly="true"
62             onfocus="WdatePicker({‘skin‘:‘whyGreen‘,‘dateFmt‘:‘yyyy-MM-dd‘});" >
63                 <s:param name="value"><s:date name="user.birthday" format="yyyy-MM-dd"/></s:param>
64             </s:textfield>
65             </td>
66         </tr>
67         <tr>
68             <td class="tdBg" width="200px">状态:</td>
69             <td><s:radio list="#{‘1‘:‘有效‘,‘0‘:‘无效‘}" name="user.state"/></td>
70         </tr>
71         <tr>
72             <td class="tdBg" width="200px">备注:</td>
73             <td><s:textarea name="user.memo" cols="75" rows="3"/></td>
74         </tr>
75     </table>
76     <s:hidden name="user.id"/>
77     <div class="tc mt20">
78         <input type="submit" class="btnB2" value="保存" />
79         &nbsp;&nbsp;&nbsp;&nbsp;
80         <input type="button"  onclick="javascript:history.go(-1)" class="btnB2" value="返回" />
81     </div>
82     </div></div></div>
83 </form>
84 </body>
85 </html>
时间: 2024-10-05 03:03:28

struts 头像上传的相关文章

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

用户头像上传是使用Struts的上传功能,因此需要遵循Struts上传文件的方式. 基本步骤: 1. 在JSP中使用 HTML 表单上传文件, 须把 HTML 表单的 enctype 属性设置为 multipart/form-data, method 属性设置为 post.HTML表单中包含<input type="file"> 使用户能选择上传文件. 2. Action 中添加三个文件上传相关的属性. 上传单个文件属性格式 属性一:类型为File,名字为页面file控件名

struts文件上传

如果在表单中上传文件,表单的enctype属性为multipart/form-data struts默认上传文件大小为2M,如果需要修改,在配置文件中设置 <constant name="struts.multipart.maxSize" value="31457280"/> jsp页面 <input type="file" name="file"/> action中属性 private File fi

struts文件上传(多文件)

第01步:配置web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="

富头像上传编辑器文档(from www.sysoft.cc)

调用方法 new fullAvatarEditor(swfContainerID, [height], [width], flashvars, [callback]); 返回值:object,该对象可调用call方法,请参见 call方法. swfContainerID 用以包裹Flash的HTML元素的ID. height Flash的高度,默认为 600. width Flash的宽度,默认为 630. flashvars 配置参数 名称 类型 默认值 描述 id String fullAv

struts——文件上传

上传文件在一个系统当中是一个很常用的功能,也是一个比较重要的功能.今天我们就一起来学习一下Struts2如何上传文件. 今天讲的上传文件的方式有三种: 1,以字节为单位传输文件: 2,Struts2封装的一种方式: 3,以字符的方式传输文件. 其实这三种方式都差不 多,都是将文件先从客户端一临时文件的形式,传输到服务器的临时文件夹下,然后在将该临时文件复制到我们要上传的目录.另外,有一个需要注意,就是上传过 程中产生的这些临时文件,Struts2不会自动清理,所以我们需要手动清理临时文件,这一个

Java头像上传方法

import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; import java.io.File; import java.io.IOException; /** * Created by Zenz. */ public class Upload { /** * 头像上传 * @param headImage 头像传出文件 * @param reque

头像上传组件,后台安全控制

http://www.hdfu.net/demo.html flash头像上传组件 http://deepliquid.com/content/Jcrop.html jcrop组件   裁切头像 登录数据库表的建立 create table hnsc_user( account varchar(50) primary key, pwd varchar(50), -- 密码 truename varchar(50),-- 真是姓名 face varchar(200), -- 注册时上传的头像 wh

[Bootstrap-插件使用]Jcrop+fileinput组合实现头像上传功能

很久没有更新博客了,再不写点东西都烂了. 这次更新一个小内容,是两个插件的组合使用,实现头像上传功能. 业务需求: 头像上传功能,要对上传的文件进行剪切,且保证头像到服务器时必须是正方形的. 优化<input type="file">的显示样式,基础的样式实在太难看了. 上传的头像需要进行质量压缩跟大小裁剪,以减缓浏览器的压力. 成果预览: 使用到的技术插件 Jcrop:用于前端"裁剪"图片 bootstrap-fileinput:用于前端优化上传控件样

php头像上传预览

php头像上传带预览: 说道上传图片,大家并不陌生,不过,在以后开发的项目中,可能并不会让你使用提交刷新页面式的上传图片,比如上传头像,按照常理,肯定是在相册选择照片之后,确认上传,而肯定不会通过form表单,点击submit刷新式上传.我为大家介绍两种异步非刷新式上传图片+图片预览:第一种,通过现成的uploadfy插件进行上传,网上好多实例.不过我重点为大家介绍的是第二种,通过Ajax上传图片.因为使用uploadfy插件需要设备支持swf格式的Flash,所以对大多数手机来说,第一种方式就