您的位置:首页 > 其它

使用Rone框架开发附件上传功能

2012-07-19 17:56 316 查看
在JavaWeb开发中经常会遇到附件上传的功能,我主要讲一下使用中软Rone框架开发附件上传功能的步骤和一些细节问题。

1、jsp页面的主要代码

<form id="emPerfProgramCuForm" action="<c:url value='/emPerfProgram/saveAttach'/>"  method="post"  enctype="multipart/form-data">
<table id="attachUpload" class="tableTab" style="width:97%;">
<caption class="ui-corner-top">上传文件</caption>
<tr>
<td class="inputLabelTd" align="right">上传方案</td>
<td class="inputTd" colspan="2"><input id="eppaAttach" name="eppaAttach" type="file"  value="<c:out value='${emPerfProgramAttach.eppaAttach}'/>"/></td>
</tr>
<tfoot>
<tr>
<td colspan="2" class="footTd">
<button type="submit"><fmt:message key='button.save'/></button>
<button type="button" onclick="window.location = '<c:url value='/emPerfProgram'/>'"><fmt:message key='button.back'/></button>
</td>
</tr>
</tfoot>
</table>
</form>

其中form元素中的 enctype="multipart/form-data"是设置表单的MIME编码。默认情况,这个编码格式是application/x-www-form-urlencoded,不能用于文件上传;只有使用了multipart/form-data,才能完整的传递文件数据。

2、controller主要代码

private InputStream eppaAttach;

这个是对应Java model中的字段属性定义,对于附件字段应该定义为InputStream类型。

/**
* <p>save emPerfProgramAttach</p>
*
* @param emPerfProgramAttach
*/
public void saveAttach(EmPerfProgramAttach emPerfProgramAttach){
String userName = "";
String curPersonUuid = "";
try {
Context con = Context.getInstance();
EntityManager entityManager = EntityManager.getInstance();
curPersonUuid = con.getCurrentPersonUuid();
//根据用户UUID获取用户名称
userName = entityManager.findPersonByUuid(curPersonUuid).getFullName();
} catch (EntityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//附件表内容保存
if(emPerfProgramAttach != null){
//新增时保存附件
if(StringUtils.isNotEmpty(eppId_1) && emPerfProgramAttach.getEppaAttach()!= null){
emPerfProgramAttach.setEppaEppId(eppId_1);
//上传人
emPerfProgramAttach.setEppaCreateUser(userName);
//上传时间
emPerfProgramAttach.setEppaCreateTime(new Timestamp(new Date().getTime()));
emPerfProgramAttachService.save(emPerfProgramAttach);
//更新时保持附件
}else if(StringUtils.isNotEmpty(eppId) && emPerfProgramAttach.getEppaAttach()!= null){
emPerfProgramAttach.setEppaEppId(eppId);
//上传人
emPerfProgramAttach.setEppaCreateUser(userName);
//上传时间
emPerfProgramAttach.setEppaCreateTime(new Timestamp(new Date().getTime()));
emPerfProgramAttachService.save(emPerfProgramAttach);
}
this.success("upload.success");
redirect(SUCCESS);
}
}

最后是controller层的保存方法。至此,附件上传功能的全部代码编写完毕。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐