动态多附件上传
----
经典解决方案
动态多附件上传,在目前的
B/S
系统中经常会遇到这方面的需求,基于开源的理念,在此我把几个解决方案做详细的介绍。目的在于提高自己的描述问题的能力,同时给遇到同样问题的朋友提供一些线索,以便节省宝贵时间。
上次项目是做一个
**
管理系统,其中有一个模块是作品发布,作品发布模块就需要实现这样一个功能:
新建一个作品,作品包含一些基本的信息,而且要求要有一个或多个附件,每个附件又要求有作品概要(即作品附件和作品概要一一对应)。
系统要求用
struts
来实现。
在讨论解决方案之前,首先要了解的是。在客户端请求服务器时提交表单,表单的内容只能为
String
型和
FormFile
型(
FormFile
类型只有在
Struts
中才有),不能提交自己定义的
dto
对象。但是可以提交自己定义的
dto
中的
String
成员和
FormFile
成员。
了解了这个原理之后,我开始阐述第一种解决方案;
第一种解决方案:间接动态多附件上传
基本思路:
定义一个
ProductForm
类
Class
ProductForm extends
ActionForm{
String
pro_name;
…….
//
其他一些基本的成员变量;
//
生成
get
和
set
方法;
}
在
jsp
页面上用相关的标签定义作品的字段;
如:
<html:text property=”pro_name” />
动态多附件则用普通标签实现,没有在
ProductForm
中定义相应的字段。因此,
Action
取值也不能直接从
ActionForm
中取值,因为
ActionForm
中根本没有相应的成员。
这里给出相关代码:
Jsp
部分:
<
TABLE
id
=
'mytable'
>
<
tr
><
td
>
</
td
>
</
tr
>
</
TABLE
>
<
html:button
value
=
"
添加新附件
"
styleClass
=
"btn"
onclick
=
"add_Row(mytable);"
property
=
"add_newFile"
/>
动态添加附件域在
jsp
中的代码是:
var
i = 0;
function
add_Row(the_table)
{
//
动态
增加一行,
实际
上也就是增加一个表格
var
the_row,the_cell;
var
cur_rows=the_table.rows.length;
the_row=cur_rows==
null
?-1:(cur_rows);
//
var
i=the_row;
var
newrow=the_table.insertRow(i);
//
得到插入位置
newrow.id = i;
the_cell=newrow.insertCell(0);
the_cell.innerHTML=
"<table width='359' border='0' cellspacing='0' id='table'>"
+
"<tr>"
+
"<td width='300'><input id='
<%=
Constants.RES_NEW_FILE_PARAMETER_NAME
%>
"
+i+
"' name='
<%=
Constants.RES_NEW_FILE_PARAMETER_NAME
%>
"
+i+
"' type='file'
onchange='fileTypeCheck(this);'
onpaste='return
false'
onkeypress='return
false'
onkeydown='return
false' oncontextmenu='return
false;'></td>"
+
"<td width='55'><input name='deleteRow' type='button' class='btn' value='
删
除此域
' onclick='del("
+i+
");'></td>"
+
"</tr>"
+
"<tr>"
+
"<td ><span class='useBB'>
文件概要
说
明
[<=50
汉
字
]</span></td>"
+
"<td class='style6'> </td>"
+
"</tr>"
+
"<tr>"
+
"<td>"
+
"<textarea
name='"
+i+
"' class='new_files_comnt' onchange='checkLength(this,100);'></textarea></td>"
+
"<td align='left' valign='top'> "
Courier;
分享到:
相关推荐
Lotus Domino 附件开发 - 批量将附件保存到一个文档 Lotus Domino 是 IBM 开发的一款功能强大且灵活的协作...Lotus Domino 附件开发提供了强大的功能和灵活的开发环境,允许开发者创建高效、灵活的附件处理解决方案。
7. **蓝imp jQuery 文件上传插件**:`blueimp-jQuery-File-Upload`是jQuery的一个知名插件,提供了一套完整的文件上传解决方案,包括多文件选择、预览、进度条、错误处理等功能。在项目中使用这个插件,可以大大简化...
- **兼容性问题:** 不同版本的InfoPath可能存在兼容性差异,确保所采用的解决方案能够在目标环境中正常运行。 - **安全性考量:** 在引入自定义控件或第三方插件时,必须对其安全性进行充分评估,防止潜在的安全...
- 选择合适的平台或工具进行附件上传。 - 根据平台指南完成上传流程。 - 记录上传过程中出现的问题及解决方法。 ##### 3.3 验证上传结果 - 检查上传后的文件是否完整无误。 - 确认文件权限设置正确。 - 对上传文件...
总结来说,"layui多附件上传.rar"是一个包含完整功能的多文件上传解决方案,它利用layui的upload模块实现了前端交互,并且提供了完善的后台操作。对于需要在项目中集成多文件上传功能的开发者,这是一个值得参考和...
Maximo系统是一款强大的资产管理和工作流程解决方案,由IBM开发。在Maximo中,附件上传功能是企业用户常用的一项特性,允许用户将相关的文档、图片或其他数据与资产、工单等对象关联,以便于信息共享和协作。本篇...
在ASP.NET中,多附件上传是一项常见的功能,它允许用户一次性上传多个文件,例如图片、文档或其他类型的文件。本实例代码旨在提供一个详尽的解决方案,涵盖了多种不同的实现方法。以下将详细介绍这些方法及其关键...
5. **多附件上传**:对于多附件的处理,服务端接口需要设计为能接受多个文件参数,或者提供一个可以多次调用的接口。客户端则需要循环调用服务,将每个文件作为单独的参数传递。 6. **安全性考虑**:在传输敏感数据...
在IT行业中,多附件上传是一项常见的功能,尤其在企业级应用和协作平台中。这个"多附件上传demo.zip"提供了一个简单的多附件上传案例,它适用于开发者在进行类似功能开发时参考。本案例主要涉及的技术栈是Struts,这...
总的来说,这个资源包提供的就是一个从前端到后端的完整多附件上传解决方案。通过jQuery插件处理前端的文件选择和上传,Spring MVC控制器接收并处理这些文件,确保了文件上传功能的实现。在实际应用中,根据项目需求...
### 关于附件上传文件名包含特殊字符的问题解决办法 #### 背景介绍 在互联网应用开发中,经常需要处理用户上传的附件。这些附件可能包括文档、图片、视频等多种类型。然而,在实际操作过程中,可能会遇到一个常见...
2. SmartUpload组件:SmartUpload提供了一套完整的文件上传解决方案。其主要特点包括: - 支持多文件同时上传。 - 自动处理文件大小限制,防止过大文件导致的问题。 - 可以限制上传文件的类型,确保安全。 - ...
下面将详细讲解SwfUpload的工作原理、实现多附件上传和进度条的功能,以及如何在Java环境下整合SwfUpload。 1. SwfUpload简介: SwfUpload是一个开源项目,它利用了Flash技术的优势来解决传统HTML文件上传的限制。...
标题所指的“解决Outlook2010最大附件上传限制”主要涉及如何调整Outlook的设置以允许发送更大的邮件附件。 首先,我们需要了解Outlook 2010的默认附件大小限制。在标准配置下,Outlook通常限制单个附件的大小在20...
8. **解决方案**:可能的解决方案包括修改FCKeditor的配置,确保其使用UTF-8编码;在Java服务器端处理请求时,明确指定读取参数的编码;或者在上传前对文件名进行URL编码,然后在服务器端解码。 通过以上知识点的...
8. **文档支持**:`Documentation.url`指向的可能是详细的使用说明或开发者指南,帮助用户理解如何配置和使用这套大附件上传解决方案。 总结来说,大附件上传是一个涉及多方面技术的复杂问题,包括文件分块、断点续...
### UCML平台多附件上传问题解决方案 #### 一、背景介绍 UCML作为一个常用的企业级内容管理系统,在实际应用过程中可能会遇到各种技术难题。其中,“UCML上传多附件问题”是较为常见的一种情况,主要体现在用户无法...
这个"SWFUpload-Samples v2.1.0 多附件上传"版本提供了多种示例,帮助开发者更好地理解和应用SWFUpload的功能,特别是针对多文件上传的需求。 首先,SWFUpload 的核心特性是它结合了Flash技术,使得它能够在不支持...
【标题】"v9修改flash附件上传为h5上传.zip"是一个针对PHPCMS V9内容管理系统(CMS)的更新包,旨在解决由于谷歌浏览器不再支持Flash导致的附件上传问题。Flash技术在过去常用于网页上的多媒体内容展示和交互,包括...
2. **SwfUpload**:这是一个基于Flash的前端文件上传解决方案,它允许用户通过Web页面实现多文件同时上传。SwfUpload利用Flash的技术优势,提供了一种友好的用户界面,可以显示上传进度,并且在上传多个文件时能进行...