上传文件

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客户成功社区