1、修改的相关文件
2、AttachmentManager.java新增方法
/**
* 根据punid, 返回一个附件
*
* @param punid
* @return
*/
public static Attachment getOneFirst(String punid, String flag) {
String hql = " from Attachment where punid = '" + punid + "' and flag='" + flag + "'";
hql += " order by createTime desc ";
Attachment attr = (Attachment)HibernateWrapper.queryOneFirstObject(hql);
return attr;
}
3、CarInfoAction.java 添加修改,新增和删除的附件方法,并引用
/**
* 获取更新操作的时候,得到修改,新增和删除的附件列表
*
* @param session
* @param updateObjs 更新的列表对象
* @param addObjs 新增的列表对象
* @param stuffDelHqls 删除的列表对象
* @param delUnids 要删除的附件的UNID
*/
private void addUpdateAttr(Session session,List<String> stuffDelHqls, List<Object> addObjs, List<Object> updateObjs, String punid ) {
CfgUser user = (CfgUser) session.getRequest().getSession().getAttribute(LoginAction.ATTRIBUTE_USER);
// 删除指定附件
if(stuffDelHqls != null && !"".equals(StrUtil.checkNull(punid))){
stuffDelHqls.add("delete Attachment where punid = '" + punid + "'");
}
//添加附件
List files = FileUploadManger.getUpFile(session);
if(null != files && files.size() > 0 ){
for (int i = 0; i < files.size(); i++) {
FileUploadObj fileObj = (FileUploadObj) files.get(i);
Attachment tblstuffinfo = new Attachment();
tblstuffinfo.setUnid(UNIDGenerate.getKey());
tblstuffinfo.setPunid(punid);
tblstuffinfo.setName(fileObj.getFileName());
tblstuffinfo.setExplain("");
tblstuffinfo.setNodename("");
tblstuffinfo.setNodeunid("");
tblstuffinfo.setContent(fileObj.getFileEntity());
tblstuffinfo.setType(fileObj.getFileType());
tblstuffinfo.setRemark("");// 设置默认值
tblstuffinfo.setFlag("1");
tblstuffinfo.setOperator(user.getUnid());
tblstuffinfo.setOperatorname(user.getRealname());
tblstuffinfo.setCreateTime(DateUtil.getNowDateTime());
addObjs.add(tblstuffinfo);
}
}
}
// 增加附件
addUpdateAttr(session, null, addObjs, null, unid);
// 重新上传附件并删除旧附件
addUpdateAttr(session, hqls, addObjs, null, unid);
4、car_info_edit.jsp
- 表单form元素增加属性 enctype="multipart/form-data"
- 增加元素
<td class="right">保养须知:</td>
<td class="inputborder">
<%
String dis = "none";
String stuffunid = "";
String stuffname = "";
if("edit_update".equals(formaction)){
Attachment stuff = AttachmentManager.getOneFirst(unid,"1");
if(null != stuff){
dis = "";
stuffunid = stuff.getUnid();
stuffname = stuff.getName();
}
}
%>
<a id="a_xz" href="javascript:downloadsave('<%=stuffunid %>');" style="display:<%=dis%>" title="<%=StrUtil.checkNull(stuffname)%>">
<%=StrUtil.getTextLimitLength(StrUtil.checkNull(stuffname),20) %>
</a>
<input type="button" name="a_cxsc" id="a_cxsc" value="重新上传" onclick="showupload()" class="btn_2k3" style="display:<%=dis%>">
<input type="file" name="input_file" id="input_file" style="display:<%="".equals(dis) ? "none" : ""%>;width:200px"/>
<input type="button" name="input_fh" id="input_fh" value="返回" class="btn_2k3" style="display:none" onclick="fh()"/>
<input type="hidden" name="stuffname" id="stuffname" value="<%=stuffname %>"/>
<input type="hidden" name="stuff_cz" id="stuff_cz" value=""/><!-- 附件操作标识 删除附件0、增加附件1、重新上传2 -->
</td>
//显示文件上传控件
function showupload() {
document.getElementById("a_xz").style.display = "none";
document.getElementById("a_cxsc").style.display = "none";
document.getElementById("input_file").style.display = "inline";
document.getElementById("input_fh").style.display = "inline";
document.getElementById("stuff_cz").value = "1";
}
//返回
function fh(){
document.getElementById("a_xz").style.display = "inline";
document.getElementById("a_cxsc").style.display = "inline";
document.getElementById("input_file").style.display = "none";
document.getElementById("input_fh").style.display = "none";
document.getElementById("stuff_cz").value = "";
}
//下载附件到本地
function downloadsave(unid){
window.open('<%=request.getContextPath()%>/downloadFile?readType=db&unid=' + unid);
}
- 大小: 18.5 KB
分享到:
相关推荐
另一种方法是直接修改现有的表单模板,增加多附件上传的功能。 **步骤1:** 打开InfoPath表单设计工具,找到附件控件所在的位置。 **步骤2:** 为附件控件添加事件处理逻辑,例如点击按钮后弹出文件选择对话框,...
2. **upload_max_filesize**:此参数控制着单个上传文件的最大尺寸。若文件超过设定的大小限制,则无法成功上传至服务器。 为了确保Mantis能够正常处理较大尺寸的附件,通常建议设置`post_max_size`的值大于等于`...
在IT行业中,附件上传是日常工作中非常常见的一个功能,它涉及到网络通信、文件处理和用户交互等多个技术领域。本文将详细解析附件上传的过程,包括附件的名称、大小、备注信息和上传人员信息,并讨论如何查看上传后...
在IT行业中,大附件上传是许多应用程序和网络服务的核心功能,尤其对于企业级协作平台、云存储服务以及文件分享站点来说至关重要。标题“大附件上传支持2G文件”表明我们讨论的是一个能够处理大型文件(最大2GB)的...
在实际应用中,我们经常需要实现文件上传功能,以便用户可以上传各种类型的附件,如文档、图片或视频。在Java JSP中,这个功能通常通过使用特定的控件或组件来实现。本篇将详细介绍如何在Java JSP中实现文件上传,...
本示例源代码主要解决了使用Java处理大附件上传的问题。以下是针对这个主题的详细知识点解释: 1. **大文件上传**:传统的HTTP表单上传方式对于大文件可能会导致内存溢出,因为整个文件会被一次性加载到内存中。...
在E9版本中,流程表单前端接口API是整个系统中用于前端开发和自定义表单功能的重要组成部分,其目的是为了提供统一、标准的前端开发方法,保障系统的稳定性和兼容性。 1. 接口封装与使用范围 泛微OA-E9流程表单的...
在IT行业中,尤其是在Web开发领域,附件上传与下载是常见的功能需求。本示例"附件上传下载demo.zip"提供了一个简单的单个附件处理案例,它主要涉及到Struts1框架的应用。接下来,我们将深入探讨这些标签所代表的知识...
### Spring MVC 附件上传知识点详解 #### 一、Spring MVC框架下的文件上传概述 在Spring MVC框架中实现文件上传功能是十分常见的需求之一。本文档将详细介绍如何在Spring MVC环境中配置并实现文件上传功能,包括...
### Struts2实现文件上传(单个+多个文件上传) #### 一、单个文件上传 在Struts2框架中实现文件上传是一项常见的需求。本文将详细介绍如何在Struts2中...希望这些示例可以帮助读者理解和实现Struts2中的文件上传功能。
由于PHP的默认配置限制了单个上传文件的大小,处理大附件时需要进行一些特殊的处理和优化。本文将详细介绍如何在PHP环境中实现超大附件上传,并提供相关代码案例。 一、理解PHP的文件上传限制 PHP有一个内置的配置...
总的来说,layui通过结合`layui-form`和`layui-upload`,实现了在同一个表单中同时提交文本数据和文件的功能。这种做法在Web应用中非常常见,特别是在用户注册、个人资料编辑等场景下。通过合理的HTML结构和...
在这个“SpringMVC文件上传,多文件上传实例”中,我们将深入探讨如何在SpringMVC环境中实现文件上传功能,包括单个文件上传以及多个文件的批量上传。 1. **文件上传原理**: 文件上传是通过HTTP协议的POST请求来...
在本实例源码中,主要涉及的是文件上传功能,这在Web开发中是一项常见的需求,如用户上传头像、提交附件等。下面我们将详细探讨文件上传的相关知识点以及如何在方配模板引擎中实现这一功能。 1. 文件上传的基本原理...
在这个场景中,我们讨论的是如何在ASP.NET MVC项目中实现WebUploader的多附件上传功能,并且在上传过程中显示进度条,提升用户体验。WebUploader是由百度开发的一个前端文件上传组件,支持多文件选择、断点续传以及...
- 单个表单附件:上传单个文件。 - 多表单附件:上传多个文件。 - 图片附件:专门用于图片上传。 - **从表**: - 一对多关系表:表示主表与从表之间的关系。 - 一对多多关系表:表示多个主表与多个从表之间的...
传统的HTML表单上传方式通常只能处理单个文件,但随着技术的发展,现在我们可以使用Ajax多文件上传组件来实现一次选择并上传多个文件的功能。这种组件不仅提高了用户体验,还允许在不刷新页面的情况下完成文件上传,...
2. **灵活性**:支持多种上传方式,如单个文件上传、多个文件批量上传,或者与表单数据一起上传。 3. **错误处理**:内置了健壮的错误处理机制,确保在上传过程中遇到问题时能够妥善处理。 4. **性能优化**:可能...
用户可以对单个项LI组配置随访流程,并针对每一次随访设置关联的表单的功能。 4. 个人科研中心:该系统提供了个人科研中心功能,展示用户在系统中的所有权限,用户所在项LI和项LI组信息,包括项LI名称/项U组名称、...
ASP.NET多文件批量上传是Web开发中常见的功能需求,尤其在数据交互和文件管理类的应用中。本源码基于ASP.NET框架,适用于.NET Framework 4.0环境,并且使用Visual Studio 2012进行开发。批量上传可以极大提高用户...