自定义表单中多附件上传控件的实现方案

多附件上传的功能,在我们开发系统的时候经常会需要,客户的需求也很复杂,如果每次的附件上传都从最基本的html元素 type=file来做的话,还是比较费时费工。如果我们把附件上传的功能封装成一个控件,在需要上传的页面中直接拉下来控件,通过设置属性就能完成多附件上传,这样是最方便和快捷的。

封装多附件上传的控件需要解决的问题:

1.一个控件,能实现多个附件的上传,不是一个控件就只能上传一个附件。

2.附件保存的位置:两种设置,保存到文件,保存到数据库;保存到文件的方式会存文件的路径。

3.附件和数据库表绑定,即一个业务表能上传一种类型的附件

4.多个附件控件和不同的数据库表绑定

5.多个附件控件和同一个数据库表绑定,即同一个业务表能上传多种类型的附件,如简历中,工作经历附件,教育程度附件,所得奖项的附件等等。

6.能指定上传附件的类型,如只能上传.doc的文件,或只能上传.pdf的文件

7.附件和数据库表记录关联,不同的页面能显示其他页面上传的附件

8.附件记录的只读可见等的设置

9.附件记录可删除,不可删除的权限设置

10.附件记录可添加,不可添加的权限设置

多附件上传的控件达到这些功能后,就和方便实用了,在同一个功能页面中,可以任意设置附件上传的控件,达到录入附件的功能。

如简历表中,工作经历附件上传,教育程度附件上传。

需要一种附件上传的功能,就拉一个附件上传的控件,和数据库表绑定,设置属性,就能完成录入的功能。

具体的附件上传是和记录关联的,当需要显示附件的时候,取出记录,就能显示出附件了,附件的内容也可以通过设置权限达到只读,或再次添加删除等功能。



 

在后续的流程节点步骤中,也能取出这里上传的附件,做显示,或者重新添加附件等操作。

一个页面也可以拉多个上传附件的控件等。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
NTKO附件管理控件(多文件上传下载在线编辑扫描控件)是拥有完全独立知识产权的多附件上传控件.使用NTKO附件管理控件[多文件上传控件],能够在浏览器中启动原始文件对应的应用程序,对图像文件,OFFICE文件,文本文件,AUTOCAD等任何文件进行编辑,打印,扫描,阅读,并保存到Web服务器。实现文档的方便编辑和统一管理。支持拖放,修改提示保存,多线程下载上传,多种视图模式,智能提交等多种特性。 http://www.ntko.com在线演示展示了NTKO 附件管理控件常用功能。该技术能让您更简单快速的将控件集成到您的产品中。 NTKO附件管理控件支持包括DOMINO在内的IIS,Websphere,Apache等所有后台WEB服务器和支持PHP,ASP,JSP,C#,VB.NET,DOMINO等各种web编程语言。并且可以在浏览器中通过JScript或者VBScrip使用控件提供的属性和方法控制文档操作。在DOMINO中,比INOTES使用更加方便快捷。集成程度更好。 详细功能列表: 1、 平台支持功能 ★ 支持多种后台web服务器和开发语言 支持DOMINO,IIS,WebLogic,Apache等多种后台web服务器和ASP,JSP,C#,VB.NET,PHP等多种后台开发语言。在任何后台web服务器都无需后台安装特别的组件或者软件。 ★ 与DOMINO服务器无缝集成 无需后台组件,和DOMINO服务器可无缝集成。比INOTES使用更加方便,开发更加快捷。 2、 网络及协议功能支持 ★ 支持智能提交 控件使用我们独创的智能提交技术,支持将附件文件和开发者指定的FORM中的数据一次性上传到服务器。 ★ 多线程上传下载,性能更高 控件完全采用多线程方式上传下载,可以更好的改善用户体验,达到更高性能。 ★ 支持UTF-8网页编码 通过IsUseUTF8Data属性,可以支持UTF-8编码网页的智能提交 ★ 支持网络缓冲大小自定义 自适应的网络传输速度,并且在特殊网络中允许用户自定义网络传输缓冲的大小 ★ 支持HTTP协议,HTTPS OVER SSL协议 对HTTPS协议的支持使得可以创建更加安全的应用。并且自动支持Session Cookie。使用当前页面的Session Cookie和服务器进行交互。 3、 界面行为支持 ★ 支持鼠标拖放 用户可以通过拖放增加本地文件到控件中,或者通过拖放从控件中拖放文件到本地资源管理器或者其他支持拖放的应用程序。 ★ 支持多种视图模式 支持大图标,小图标,详细信息显示等多种模式。支持多种排序方式。 ★ 支持自定义工具栏 通过附件提供的事件和方法,用户可以自定义工具栏执行调用。 ★ 支持直接编辑文件 用户可双击附件直接打开编辑,或者使用右键菜单选择打开或者打印,系统自动下载到临时目录并执行相关操作。 ★ 支持提示文件修改 如果下载到本地的文件被修改,控件自动提示并可以保存回服务器。 ★ 支持编辑,打开,打印等多种操作方式L 可对附件进行编辑,打开,打印,打开文件夹,查看属性等多种操作。 4、 编程支持 ★ 支持简洁高效的编程接口 可使用Javascript和VBScript对控件进行编程。 ★ 支持自定义列,并且可以隐藏预定义的某些列 控件支持最多5个自定义列。让开发者能够有更多的控制。 ★ 支持设定自定义用户数据并显示 控件可以为自定义列设定自定义的用户数据并显示。并且能够自动排序。 ★ 支持过滤文件大小,文件总数量,以及文件类型 通过控件的BeforeFileAdded事件,用户可以限定允许添加到控件的文件类型,大小,以及数量。 ★ 支持多个事件 通过控件选择文件,添加文件之前,选择数量变化等多个事件,用户可以对控件实施更多控制 5、 安全及其他支持 ★ 安全可靠 系统不会自动增加未经用户授权的文件。在打开可执行文件时会自动提示警告。 ★ 支持直接从扫描仪输入文件[需要购买扫描支持模块] 通过AddFromScanner方法,控件支持从扫描仪中直接扫描图片到控件中。[需要购买扫描支持模块]
非常感谢您的提问,这是一个比较复杂的项目,需要涉及到前端页面设计、后端逻辑开发以及数据库设计等多个方面。以下是我给出的一些参考思路,具体实现可能需要根据您的实际需求进行调整。 1. 页面设计 首先,需要设计一个表单页面,其中包含各个输入框、按钮等元素。可以使用 HTML 和 CSS 进行页面布局和样式设计,也可以使用现有的前端框架(如 Bootstrap)进行快速开发。 在输入框中添加提示内容可以使用 HTML 的 `placeholder` 属性,例如: ```html <input type="text" placeholder="请输入您的姓名"> ``` 清空输入框可以使用 JavaScript 中的 `value` 属性,例如: ```javascript let input = document.getElementById("name-input"); input.addEventListener("focus", function() { input.value = ""; }); ``` 2. 校验功能 根据要求,需要对密码、电话号码、邮箱等进行格式校验。可以使用正则表达式来判断输入是否符合要求。例如,判断密码是否符合要求可以使用以下代码: ```javascript let passwordInput = document.getElementById("password-input"); passwordInput.addEventListener("blur", function() { let password = passwordInput.value; let pattern = /^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+=]).{8,}$/; if (!pattern.test(password)) { alert("密码必须包含数字、大小写字母和特殊字符,且长度不少于8位。"); passwordInput.value = ""; } }); ``` 校验电话号码和邮箱可以使用类似的方法,例如: ```javascript let phoneInput = document.getElementById("phone-input"); phoneInput.addEventListener("blur", function() { let phone = phoneInput.value; let pattern = /^1[3-9]\d{9}$/; if (!pattern.test(phone)) { alert("请输入正确的电话号码。"); phoneInput.value = ""; } }); let emailInput = document.getElementById("email-input"); emailInput.addEventListener("blur", function() { let email = emailInput.value; let pattern = /^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/; if (!pattern.test(email)) { alert("请输入正确的邮箱地址。"); emailInput.value = ""; } }); ``` 3. 日期控件 可以使用现有的日期控件库(如 jQuery UI Datepicker)来实现日期选择功能。例如,在 HTML 中添加一个日期输入框: ```html <input type="text" id="birthdate-input"> ``` 然后在 JavaScript 中初始化日期控件: ```javascript $(function() { $("#birthdate-input").datepicker({ dateFormat: "yy-mm-dd" }); }); ``` 4. 地址联动选择 可以使用现有的地址选择器库(如 jQuery CitySelect)来实现地址联动选择功能。例如,在 HTML 中添加一个地址选择器: ```html <input type="text" id="address-input"> ``` 然后在 JavaScript 中初始化地址选择器: ```javascript $(function() { $("#address-input").citySelect(); }); ``` 5. 附件上传 可以使用 HTML5 中的 `input` 元素的 `type="file"` 属性来实现附件上传功能。例如,在 HTML 中添加一个附件上传输入框: ```html <input type="file" id="attachment-input"> ``` 然后在 JavaScript 中监听上传事件: ```javascript let attachmentInput = document.getElementById("attachment-input"); attachmentInput.addEventListener("change", function() { let file = attachmentInput.files[0]; let fileName = file.name; let fileExt = fileName.substr(fileName.lastIndexOf(".") + 1); let fileSize = file.size; let maxSize = 1024 * 1024; // 1MB if (fileSize > maxSize) { alert("附件大小不能超过1MB。"); attachmentInput.value = ""; } else { let fileInfo = `${fileName} (${fileExt})`; let fileInfoInput = document.getElementById("attachment-info-input"); fileInfoInput.value = fileInfo; } }); ``` 6. 跳转到登录页面 最后,在提交按钮上添加点击事件,跳转到登录页面: ```javascript let submitButton = document.getElementById("submit-button"); submitButton.addEventListener("click", function() { location.href = "login.html"; }); ``` 在登录页面中,可以使用类似的方式获取表单数据,并进行登录校验和处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值