Fileupload - ChinaSS/Util GitHub Wiki

附件配置

目前未提供前端UI,修改pd_web_fileupload_config表中的base_dir字段即可设置附件要上传的根目录; 例如d:\swordfileupload\;

单附件上传

使用样例

require(['PDUtilDir/fileupload/singleFileUpload'],function(SFU){
    var settings = {
        placeAt:"imageUpload",
        data:"fe2499ad9be69f048c16da19108e2ec4",
        onUploadSuccess:function(file){

        },
        onDeleteSavedFile:function(file){

        }
    };
    var SFUpload = SFU.init(settings);
});

附件配置对象

属性名称 类型 说明
placeAt String/DOM 必选,把附件上传组件放在指定容器的id,可为DOM对象
data String 可选,已经上传的附件id
fileMiddleDir String 可选,基于base_dir的目录路径,用于按模块存放附件;例如:system/org/
allowMC boolean [可选] [默认值:true],是否允许秒传,为false时每次上传都创建对应的物理文件
allowDelete boolean [可选] [默认值:true],是否允许删除附件
fileNumLimit int 可选,默认值:undefined, 验证文件总数量, 超出则不允许加入队列。
fileSizeLimit int [可选] [默认值:undefined] 验证文件总大小是否超出限制, 超出则不允许加入队列。
fileSingleSizeLimit int [可选] [默认值:undefined] 验证单个文件大小是否超出限制, 超出则不允许加入队列。
accept array [可选] [默认值:null] 指定接受哪些类型的文件。 具体设置可参看webUploader的API

事件

在配置对象中配置

名称 参数 说明
onDeletedFile file 0.9.7版本弃用,用onDeleteSavedFile替换
onUploadedFile file 0.9.7版本弃用,用onUploadSuccess替换
onUploadStart file 附件开始上传时触发;可通过file.swordFileId拿到附件id,this为附件上传组件对象
onUploadError file 附件上传失败触发;可通过file.swordFileId拿到附件id,this为附件上传组件对象
onUploadSuccess file 附件上传成功时触发;可通过file.swordFileId拿到附件id,this为附件上传组件对象
onDeleteSavedFile file 删除已上传成功附件触发;可通过file.swordFileId拿到附件id,this为附件上传组件对象

Upload对象

整个附件上传组件对象,var SFUpload = SFU.init(settings);

名称 类型 说明
getStats 方法 获取文件统计信息。返回一个包含一下信息的对象。
progressNum 上传中的文件数




# 多附件上传 ```javascript require(['PDUtilDir/fileupload/multiFileUpload'],function(MFU){ var settings = { placeAt:"attachContent", data:["5a50d697c0af806aa01e06120d04f977","6c01e4492f264befab4c0532811f8dff"], onUploadSuccess:function(file){
    },
    onDeleteSavedFile:function(file){

    }
};
var MFUpload = MFU.init(settings);

});


## 附件配置对象
|  属性名称  |  类型  |             说明             |
| :--------:| :---: |:-----------------------------------:|
|placeAt    | String/DOM |必选,把附件上传组件放在指定容器的id,可为`DOM对象`|
|data       | String |可选,已经上传的附件id|
|fileMiddleDir| String |可选,基于`base_dir`的目录路径,用于按模块存放附件;例如:`system/org/`|
|allowMC    | boolean |[可选] [默认值:true],是否允许秒传,为false时每次上传都创建对应的物理文件|
|allowUpload| boolean |[可选] [默认值:true],是否允许上传附件|
|allowDelete| boolean |[可选] [默认值:true],是否允许删除附件|
|fileNumLimit | int |[可选] [默认值:undefined], 验证文件总数量, 超出则不允许加入队列。|
|fileSizeLimit| int |[可选] [默认值:undefined] 验证文件总大小是否超出限制, 超出则不允许加入队列。|
|fileSingleSizeLimit| int |[可选] [默认值:undefined] 验证单个文件大小是否超出限制, 超出则不允许加入队列。|
|accept       | array |[可选] [默认值:null] 指定接受哪些类型的文件。 具体设置可参看webUploader的[API](http://fex-team.github.io/webuploader/doc/index.html)|


## 事件
>在配置对象中配置

|名称|参数|说明|
|:---:|:---:|:---|
|onDeletedFile  | file,savedFilesId | `0.9.7版本弃用,用onDeleteSavedFile替换` |
|onUploadedFile | file,savedFilesId | `0.9.7版本弃用,用onUploadSuccess替换`|
|onUploadStart  | file | 附件开始上传触发;可通过`file.swordFileId`拿到附件id,this为附件上传组件对象; |
|onUploadError  | file | 附件上传失败触发;可通过`file.swordFileId`拿到附件id,this为附件上传组件对象; |
|onUploadSuccess| file | 附件上传成功出发;可通过`file.swordFileId`拿到附件id |
|onDeleteSavedFile|file| 删除已上传成功附件触发;可通过`file.swordFileId`拿到附件id |
|onDeleteUploadingFile|file| 删除正在上传过程中的附件触发 |

## Upload对象
>整个附件上传组件对象,`var MFUpload = MFU.init(settings);`  

|名称|类型|说明|
|:---:|:---:|:---|
|getQueuedFiles| 方法| 获取所有待上传附件,`MFUpload.getQueuedFiles()`|
|getSavedFiles| 方法| 获取所有已上传附件,`MFUpload.getSavedFiles()`|
|getDeletedSavedFiles| 方法| 获取已删除上传成功附件列表|
|getStats| 方法| 获取文件统计信息。返回一个包含一下信息的对象。  <br>`progressNum` 上传中的文件数 <br>`queueNum` 还在队列中的文件数|

# 后端API
>1.单附件上传和多附件上传都适用  
>2.使用`SwordFileUploadUtils`即可调用该类下所有静态方法  
>3.`任何时候都不可直接物理删除附件,以及附件记录`  


|名称|参数|返回值|说明|
|:---:|:---:|:---:|:---|
|getConfig| 无|PdWebFileuploadConfig| 获取附件配置对象,`SwordFileUploadUtils.getConfig()`|
|getFileById| String,文件id|PdWebFileupload| 获取附件对象,`SwordFileUploadUtils.getFileById(id)`|
|moveFile| String id,String newDir|boolean| 移动文件,需要使用该方法时最好设置allowMC为false。  不建议使用,破坏文件统一管理,移走后删除也必须走API,否则影响附件管理,`SwordFileUploadUtils.removeFile(id,newDir)`|
|delFileById| String,文件id|boolean| 获取附件配置对象,`SwordFileUploadUtils.delFileById(id)`|
⚠️ **GitHub.com Fallback** ⚠️