1 <dl>
2 <dt><hi:text key="照片" entity="Resume"/>:</dt>
3 <dd>
4 <input type="hidden" name="resume.photo_attachment.id" value="${resume.photo_attachment.id}"/>
5 <input type="text" class="textInput" name="resume.hi_photo_attachment.fileName" value="${resume.photo_attachment.fileName}" readonly="readonly"/>
6 <a class="btnAttach" href="<hi:url>attachmentLookup.action?lookup=1&from=attachment&saveType=1</hi:url>" lookupGroup="resume" lookupName="photo_attachment" width="560" height="300" title="<hi:text key="附件"/>"><hi:text key="附件"/></a>
7 <c:if test="${not empty resume.photo_attachment}">
8 <a class="btnView" href="attachmentView.action?attachment.id=${resume.photo_attachment.id}" target="_blank">
9 <hi:text key="查看"/>
10 </a>
11 </c:if>
12 </dd>
13 </dl>
1 <%@ page language="java" contentType="text/html; charset=utf-8"%>
2 <%@ include file="/includes/main.jsp"%>
3
4 <%
5 String attachDesc = request.getParameter("from");
6 if (attachDesc == null )
7 attachDesc = "attachment";
8 String attachmentType= request.getParameter("saveType");
9 if (attachmentType== null )
10 attachmentType ="1";
11 %>
12
13 <h2 class="contentTitle">请选择需要上传的附件</h2>
14 <form name="saveForm" action="attachmentSave.action?ajax=0" method="post" enctype="multipart/form-data" class="pageForm required-validate" onsubmit="return iframeCallback(this, $.bringBack)">
15
16
17 <input type="hidden" name="attachment.attachDesc" value="<%=attachDesc%>" />
18 <input type="hidden" name="attachment.attachmentType" value="<%=attachmentType%>" />
19 <input type="hidden" name="attachment.id" value="${attachment.id}"/>
20 <input type="hidden" name="attachment.version" value="${attachment.version}"/>
21
22 <div class="pageContent">
23 <div class="pageFormContent" layoutH="97">
24 <dl>
25 <dt>附件:</dt><dd><input type="file" name="image" class="required" size="30" /></dd>
26 </dl>
27 </div>
28 <div class="formBar">
29 <ul>
30 <li><div class="buttonActive"><div class="buttonContent"><button type="submit">上传</button></div></div></li>
31 <li><div class="button"><div class="buttonContent"><button type="button" onclick="javascript:$.bringBack({id:'-1', fileName:'', attachmentPath:'',attachmentSize:'',imageICO:''})"><hi:text key="重置"/></button></div></div></li>
32 </ul>
33 </div>
34 </div>
35 </form>
36
1 package org.hi.common.attachment.action.struts;
2
3 import java.io.File;
4 import java.util.List;
5
6 import org.hi.SpringContextHolder;
7 import org.hi.framework.HiConfigHolder;
8 import org.hi.framework.paging.PageInfo;
9 import org.hi.framework.web.BusinessException;
10 import org.hi.framework.web.PageInfoUtil;
11 import org.hi.framework.web.struts.BaseAction;
12 import org.hi.i18n.util.I18NUtil;
13
14 import org.hi.common.attachment.action.AttachmentPageInfo;
15 import org.hi.common.attachment.action.cust.FtpUtil;
16 import org.hi.common.attachment.model.Attachment;
17 import org.hi.common.attachment.service.AttachmentManager;
18
19 public class AttachmentAction extends BaseAction{
20
21 private Attachment attachment;
22 private AttachmentPageInfo pageInfo;
23 private List<Attachment> attachments;
24 private String orderIndexs;
25
26 private File image;
27 private String imageFileName;
28 /**
29 * 上传文件的文件类型
30 */
31 private String imageContentType;
32
33 /**
34 * 设置上传文件的大小
35 */
36 private String maxSize= HiConfigHolder.getProperty("hi.upload.ftp.maxSize") == null ? "100" : HiConfigHolder.getProperty("hi.upload.ftp.maxSize");
37 /**
38 * 新增/修改保存附件
39 */
40 public String saveAttachment() throws Exception {
41 AttachmentManager attachmentMgr = (AttachmentManager)SpringContextHolder.getBean(Attachment.class);
42 if(super.perExecute(attachment)!= null) return returnCommand();
43
44 if (image != null) {
45 if (image.length()/1024d/1024d > new Double(maxSize))
46 throw new BusinessException(I18NUtil.getStringByParameter("上传文件过大", "Attachment", maxSize));
47
48 String imagePath = "";
49 if (attachment.getAttachmentType() == 2)
50 imagePath = FtpUtil.getFtpUploadClient().saveFileToFTP(image, imageFileName,attachment.getAttachDesc());
51 else
52 imagePath = FtpUtil.getOSFileClient().saveFile(image, imageFileName,attachment.getAttachDesc());
53
54 attachment.setAttachmentPath(imagePath);
55 attachment.setFileSize( image.length()/1024d );
56 attachment.setFileType(imageContentType);
57 attachment.setFileName(imageFileName);
58 attachmentMgr.saveObject(attachment);
59 }
60
61
62 super.postExecute(attachment);
63 return returnCommand();
64 }
65
66
67 /**
68 * 删除附件
69 */
70 public String removeAttachment() throws Exception {
71 AttachmentManager attachmentMgr = (AttachmentManager)SpringContextHolder.getBean(Attachment.class);
72 attachmentMgr.removeAttachmentById(attachment.getId());
73 return returnCommand();
74 }
75
76 /**
77 * 删除指定的某些附件
78 */
79 public String removeAllAttachment() throws Exception {
80 AttachmentManager attachmentMgr = (AttachmentManager)SpringContextHolder.getBean(Attachment.class);
81 if (orderIndexs != null && orderIndexs.length()> 0 )
82 {
83 String[] ids= orderIndexs.split(",");
84 for( int i=0; i<ids.length; i++)
85 {
86 if (ids[i].length()>0)
87 {
88 Integer attachmentid = new Integer( ids[i] );
89 attachmentMgr.removeAttachmentById(attachmentid);
90 }
91 }
92 }
93
94 return returnCommand();
95 }
96
97 /**
98 *查看附件
99 */
100 public String viewAttachment() throws Exception {
101 AttachmentManager attachmentMgr = (AttachmentManager)SpringContextHolder.getBean(Attachment.class);
102 attachment = attachmentMgr.getAttachmentById(attachment.getId());
103 return returnCommand();
104 }
105
106 /**
107 * 附件列表
108 */
109 public String attachmentList() throws Exception {
110 AttachmentManager attachmentMgr = (AttachmentManager)SpringContextHolder.getBean(Attachment.class);
111 pageInfo = pageInfo == null ? new AttachmentPageInfo() : pageInfo;
112 PageInfo sarchPageInfo = PageInfoUtil.populate(pageInfo, this);
113
114 attachments = attachmentMgr.getAttachmentList(sarchPageInfo);
115
116 return returnCommand();
117 }
118
119
120
121
122 public Attachment getAttachment() {
123 return attachment;
124 }
125
126 public void setAttachment(Attachment attachment) {
127 this.attachment = attachment;
128 }
129
130 public List<Attachment> getAttachments() {
131 return attachments;
132 }
133
134 public void setAttachments(List<Attachment> attachments) {
135 this.attachments = attachments;
136 }
137
138 public AttachmentPageInfo getPageInfo() {
139 return pageInfo;
140 }
141
142 public void setPageInfo(AttachmentPageInfo pageInfo) {
143 this.pageInfo = pageInfo;
144 }
145
146 public String getOrderIndexs() {
147 return orderIndexs;
148 }
149
150 public void setOrderIndexs(String orderIndexs) {
151 this.orderIndexs = orderIndexs;
152 }
153
154
155 public File getImage() {
156 return image;
157 }
158
159
160 public void setImage(File image) {
161 this.image = image;
162 }
163
164
165 public String getImageFileName() {
166 return imageFileName;
167 }
168
169
170 public void setImageFileName(String imageFileName) {
171 this.imageFileName = imageFileName;
172 }
173
174
175 public String getImageContentType() {
176 return imageContentType;
177 }
178
179
180 public void setImageContentType(String imageContentType) {
181 this.imageContentType = imageContentType;
182 }
183
184
185 public String getMaxSize() {
186 return maxSize;
187 }
188
189
190 public void setMaxSize(String maxSize) {
191 this.maxSize = maxSize;
192 }
193
194
195
196 }
197
1 <?xml version="1.0" encoding="UTF-8" ?>
2 <!DOCTYPE struts PUBLIC
3 "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
4 "http://struts.apache.org/dtds/struts-2.0.dtd">
5 <struts>
6 <package name="attachment" extends="hi" >
7 <!-- ============= 附件对应的AttachmentAction============ -->
8
9
10 <action name="attachmentSave"
11 class="org.hi.common.attachment.action.struts.AttachmentAction" method="saveAttachment">
12 <result name="success" >/attachment/AttachmentBrightBack.jsp</result>
13 <interceptor-ref name="modelStackUpload" />
14 </action>
15
16 <action name="attachmentView"
17 class="org.hi.common.attachment.action.struts.AttachmentViewAction">
18 <result name="success" type="stream">
19 <param name="inputName">inputStream</param>
20 <param name="contentType">${contentType}</param>
21 <param name="contentDisposition">filename="${fileName}"</param>
22 </result>
23 <interceptor-ref name="modelParamsStack" />
24 </action>
25
26
27 <action name="attachmentLookup"
28 class="org.hi.common.attachment.action.struts.AttachmentAction" method="attachmentList">
29 <result name="success">/attachment/AttachmentList.jsp</result>
30 <interceptor-ref name="modelParamsStack" />
31 </action>
32
33 </package>
34 </struts>
posted on 2012-03-04 17:33
周磊 阅读(2933)
评论(0) 编辑 收藏