上传文件
AWS应用容器对每个应用各类资源提供了沙箱管理,对于文件读写提供了一套完善的DC
(Doc Center)机制,文件必须通过DC处理器进行处理。AWS对文件上传封装了一个公用的组件,能够满足常用浏览器(IE8+, Firefox, Google Chrome, Safari、平板UC等)的文件上传功能。
服务端插件注册和声明
注册DCPluginProfile需要你声明repositoryName
(存放文件的根目录名)和文件处理器(继承com.actionsoft.bpms.server.fs.AbstFileProcessor)。
- 有关
DC
开发详细内容,参见《AWS 插件扩展开发参考指南》- 有关DC API操作(如读、写文件),参见aws-api-doc提供的
DCAPI
客户端调用
upfile
是AWS UI封装的通用文件上传组件,采用双核技术(IE8/IE9提供Flash模式,对支持HTML5的浏览器采用无插件模式)实现批量文件上传、文件类型过滤、文件大小控制和上传进度控制,对各类浏览器提供了较好的体验支持。
上传组件的资源引用
<link rel="stylesheet" type="text/css" href="../commons/css/awsui.css"/>
<script type="text/javascript" src="../commons/js/jquery/scripts/jquery.js"></script>
<script type="text/javascript" src="../commons/js/awsui.js"></script>
用JavaScript打开上传对话框
<script type="text/javascript">
$(function(){
//myUpfile对象绑定upfile组件
$("#myUpfile").upfile({
sid: "<#sid>", // 会话ID
appId: "com.actionsoft.apps.poc.plugin", // 应用ID
groupValue: "dir1", // DC大类,建议变量规则
fileValue: "dir2", // DC小类,建议变量规则
numLimit: "2", //最多一次允许上传几个,0(无限制)
filesToFilter : [["Images (*.jpg; *.jpeg; *.gif; *.png; *.bmp)","*.jpg; *.jpeg; *.gif; *.png; *.bmp"]],
repositoryName: "myfile", // 该应用申请的DC名
done: function(e, data){
//事件回调函数
//上传完成后,开始调用导入代码
if (awsui.ajax.ok(data.result.data)) {//判断请求是否执行成功
//可以调用公共方法处理提示信息
awsui.ajax.alert(data.result.data);
//或者自行处理提示信息
//$.simpleAlert('文件上传成功!');
// downloadURL
var url = data.result.data.data.attrs.url;
//如果定义了其他返回的属性,也需要使用data.result.data.data.attrs调用
} else {
// 上传失败,提示出错误信息
awsui.ajax.alert(data.result.data);
}
}
});
});
</script>
上传按钮的定义
<span id="myUpfile" class="button green" onclick="return false;">上传</span>
上述客户端调用示例,也可从
AWS企业应用商店
安装扩展插件概念验证
应用,所有源码在src目录下
参数说明
- 属性
Name | Type | Description | Default |
---|---|---|---|
sid(*-必须) | String | 会话ID | |
appId(*-必须) | String | 应用ID | |
repositoryName(*-必须) | String | DC插件定义 | |
groupValue(*-必须) | String | 文件大类 | |
fileValue(*-必须) | String | 文件小类 | |
filesToFilter | String | var filter = [["Images (.jpg; .jpeg; .gif; .png; .bmp)",".jpg; .jpeg; .gif; .png; .bmp"]]; | 不过滤,可上传所有文件 |
sizeLimit | number | 文件大小限制 | 25*1024*1024(25M) |
numLimit | int | 上传个数限制 | 0(无限制) |
- 事件
Name | Param | Description |
---|---|---|
add | e 事件;data(返回的数据) | 文件被添加到上传列表时触发,当返回false时,可阻止上传。 例如: //data.files 为上传文件的数组 add:function(e, data){ //data.files 为上传文件的数组 $.each(data.files, function(index, file) { // file.name 文件名称 file.size 文件大小 file.type 文件类型 }) if(size==0){ //空文件不允许上传 return false; } } |
progress | e 事件;data(返回的数据) | 文件上传中触发 |
done | e 事件;data(返回的数据) | 单个文件上传完毕后触发 |
error | e 事件;data(返回的数据) | 单个文件上传失败后触发。 可能是web服务器也可能是app服务器造成的失败 |
complete | 文件成功上传结束后触发 |

Seven

010-62962343-690

liujx@actionsoft.com.cn
感谢您对该文档的关注!如果您对当前页面内容有疑问或好的建议,请与我联系。如果您需要解答相关技术问题请登录AWS客户成功社区