H5附件上传(U7)

一、功能描述

UCML包含两种文件上传控件:H5附件上传Flash附件上传

H5附件上传是UCML集成Plupload部分功能实现的上传组件,拥有多种上传方式:HTML5、flash、silverlight。H5附件上传会自动侦测当前的环境,选择最合适的上传方式,并且会优先使用HTML5的方式,在不支持HTML5的浏览器中会自动回退到flash的上传方式,所以用户完全不用去操心当前浏览器支持哪些上传方式。

Flash附件上传是UCML集成SWFUpload的一个flash和js相结合而成的文件上传插件,用户若使用Flash附件上传,电脑必须安装Flash插件。

下面内容详细介绍H5附件上传控件,多附件上传单附件上传实例,以及控件扩展知识。此控件对应的视频链接: https://pan.baidu.com/s/1ueEJeDPa5XLcG0PmNIEodA 提取码: s6sh

二、控件介绍

控件位置

图片.png

控件设计

控件配置信息

上传模式:

【多附件上传,信息存到子表,文件存在目录下】:某条业务数据下有多条附件信息(例如:每个员工有多个报销单文件,员工表为业务主表,报销单表为子表,存储报销单附件信息),此时需要两个表,一张业务主表,一张业务子表(存储附件信息),其中子表中的字段至少需包含字段:附件名称、附件类型、存储附件路径字段(长度最好64以上)指向业务主表的字段(普通字段或外键字段)

【单附件上传,信息存到本表,文件存在目录下】:某条业务数据下有且仅有一条附件信息(例如:一个合同表对应上传一个合同附件,附件信息写入合同表,文件信息保存到当前站点源码目录的某个文件夹下),此时需要一个业务表,业务表中至少需包含字段:附件名称、附件类型、存储附件路径字段(长度最好64以上)

上传信息:

【主表BC】:主表对应的业务组件(多附件上传模式时需要填写)

【子表和主表关联外键】:子表指向主表的字段(多附件上传模式时需要填写)

【文件目录】:保存文件的文件夹名称,此项为空时,上传的文件保存在站点根目录下的upload文件夹中,此项填写相应值时(如FileUpload),则会在上传附件时自动在upload下创建FileUpload文件夹,并把上传的文件保存在此文件夹下

【物理文件路径字段】:保存文件路径的字段

【文件类型字段】:保存文件类型的字段

【文件名称字段】:保存文件名称的字段

【允许下载】:是否提供用户下载功能

文件存储模式:

【本地文件】:默认勾选,文件信息保存在服务器站点源码目录的某个文件夹下

【文件服务器】:从U7616开始支持上传到FTP服务器,配置文件服务器的说明请看下文【扩展知识-控件属性】

三、实例操作步骤

多附件上传

1、创建表

创建项目表(主表Project),项目附件表(至少需包含文件名称、文件类型、文件路径、指向主表的字段)两张数据表,数据访问源码生成、编译

【文件名称】:保存文件名称的字段

【文件类型】:保存文件类型的字段

【文件路径】:保存文件路径的字段

【Project_FK】:保存项目表的主键信息的字段(此处用外键字段)

2、创建BC

创建BC,引入1中创建的表

3、创建主表VC

4、创建附件表的列表VC

在【UCML桌面控件】中将【H5附件上传】控件拖到设计界面中,如下图所示:

图片.png

5、控件设计

选中上传文件控件,右键选择设计,进入设计界面,设置相关属性信息,上传模式选择:多附件上传,信息存在子表,文件存在目录下,如下图:

控件上传信息配置查看上文【控件配置信息】

6、创建BPO

引入相应的BC、VC,主子BC都需引入。BPO上业务单元生成,源码编译。

注意:子BC必须配置外键字段、外键字段类型、主表键字段

7、上传附件

Web页面单击【上传文件】按钮,弹出文件选择窗口,选择需要上传的文件后(文件可多选),单击【打开】,即可实现附件上传。

附件上传成功后,页面效果如下:

 

页面功能介绍:

单击文件名称可下载文件;

单击按钮可删除记录及文件

文件路径里的文件名称以Guid格式存储,是为了避免上传文件名称重复

单附件上传

1、创建表

创建合同数据表(至少需包含文件名称,文件类型,文件路径等字段),数据访问源码生成、编译

 

【文件名称】:保存文件名称的字段

【文件类型】:保存文件类型的字段

【文件路径】:保存文件路径的字段

2、创建BC

创建BC,引入1中创建的表

3、创建VC

创建合同表的列表VC,在【UCML桌面控件】中将【H5附件上传】控件拖到设计界面中,如下图所示:

图片.png

4、控件设计

选中上传文件控件,右键选择设计,设置相关属性信息,上传模式选择:单附件上传,信息存在本表,文件存在目录下,如下图:

blob.png

控件上传信息配置查看上文【控件配置信息】

5、创建BPO

创建业务单元,引入BC,VC,生成编译

6、上传附件

Web页面单击【上传文件】按钮,弹出文件选择窗口,选择需要上传的文件,单击【打开】,即可实现上传。

附件上传成功后,效果图如下:

 

页面功能介绍:

单击文件名称可下载文件;

单击按钮可删除记录及文件

文件路径里的文件名称以Guid格式存储,是为了避免上传文件名称重复

 

四、扩展知识

在设计器中右键【H5附件上传】控件,点击属性与事件

控件属性

image.png

【DataField】:绑定字段属性,选择保存文件名称的字段

【AllowDelete】:是否允许删除已上传的文件,UCML7662(不含)之后的版本支持此属性

【AllowDownLoad】:是否允许点击文件链接下载

【BCName】:当前控件所属的BC

【buttonCls】:规定按钮元素的类的名称,使用方式如下图:

图片.png

【buttonText】:按钮标题,默认为“上传文件”,可自定义

【DestinationFolder】:保存文件的文件夹名称

【ExtNameField】:绑定字段属性,选择保存文件类型的字段

【FileNameFiled】:绑定字段属性,选择保存文件名称的字段

【FileSizeLimit】:上传文件的大小限制,默认为5MB(格式100B, 10KB, 10MB, 1GB,不区分大小写)

【FileStoreMode】:文件存储模式,默认是SaveToFile。从U7616开始支持SaveToFtpServer(上传到FTP服务器),若选择SaveToFtpServer,则需要在系统参数中配置FTPServer、FTPUserName、FTPPassword

【FileTypes】:限制上传文件的类型(如属性值设置为zip,则只可以上传zip文件),多个文件类型限制时用逗号隔开,该属性默认为空,即不做限制。

【FileUploadLimit】:上传文件个数限制,默认为0不限制(保留功能,暂不支持)

【FK_FieldName】:绑定字段属性,选择子表指向主表的字段(多附件上传时需选择)

【MasterBCName】:主表对应的业务组件(多附件上传时需填写)

【PhysicalFileField】:绑定字段属性,选择保存文件路径的字段

【ShowUploadFile】:是否显示上传后的文件,默认显示

控件事件

参数FileObj为上传的文件对象,可以通过FileObj.name得到文件名称

事件名称

说明

beforeParam

当队列中的某一个文件正要开始上传前触发

complete(FileObj)

当上传队列中所有文件都上传完成后触发,FileObj为触发此事件的文件对象

error(FileObj)

当发生错误时触发,FileObj为触发此事件的文件对象

startUpload(FileObj)

当上传队列中某一个文件开始上传后触发,FileObj为触发此事件的文件对象

success (FileObj)

当队列中的某一个文件上传完成后触发,FileObj为触发此事件的文件对象

uploading(FileObj)

会在文件上传过程中不断触发,可以用此事件来显示上传进度,FileObj为触发此事件的文件对象

文件对象属性: 例如可以通过FileObj.name得到文件名称

属性名称

说明

id

文件id

name

文件名称

oid

当前文件所在记录的主键OID值

origSize

文件的原始大小,单位为字节

path

文件路径

percent

文件已上传部分所占的百分比,如50就代表已上传了50%

size

文件大小,返回数值,单位为字节


注册事件:

方法一:在控件的属性与事件中双击事件

方法二:在BPO的JS业务初始化等时刻注册事件:控件ID.on("事件名称",函数名称);

示例代码:

TUCMLPlUpload1.on("success",fn_UpLoadSucceeded);


blob.png

控件函数

控件ID.函数名称();

示例代码:

TUCMLPlUpload1.hideUploadButton();


函数名称

说明

hideUploadButton()

隐藏上传按钮

showUploadButton()

显示上传按钮

getDownloadUrl()

获取文件的下载地址


在列表中点击文件名称下载文件,设置文件名称字段的链接业务组件自定义事件代码:

window.open(TUCMLPlUpload1.getDownloadUrl());

image.png

属性相关设置

BC上不勾选允许添加记录,页面上将隐藏上传文件的按钮,不允许上传

BC上不勾选允许删除记录,页面上将隐藏删除按钮,不允许删除

 



评论

暂无评论!

发表评论