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为附件上传组件对象 |
整个附件上传组件对象,
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)`|