# **s94-file**
> 浏览器中，用于文件上传和在线文件选择的可视化插件

## **安装**
```
$ npm install s94-file
```
## **使用**
```js
var file = require('s94-file');
$('.btn').on('click',function(){
	//调起插件界面
	file({
		upload_url: '后台上传接口',
		filelist_url: '后台文件列表接口',
		max_file: 10,
		max_size: 1*1024*1024,
		accept: 'jpg,png',
		ok: function(res){
			console.log('ok',res);
		},
		cancel: function(res){
			console.log('cancel',res);
		},
		thisArg: this,
	});
})
```

# **file(config)**
- config `Object` 配置参数
	- upload_url `String` 上传接口地址。查看[详细介绍](#upload_url)
	- filelist_url `String` 后台文件列表地址。查看[详细介绍](#filelist_url)
	- max_file `Number` 可以上传或者选择的文件数量，默认为1。
	- max_size `Number` 文件上传的最大大小，设定到小于服务器限制。大于该大小的文件会进行分段上传，默认10*1024*1024（10M）
	- name `String` 上传文件的字段的key，(**默认值**:file)
	- accept `String` 文件上传和列表限制的文件后缀名，逗号分隔。查看[详细介绍](#accept)
	- thisArg `Object` ok和cancel回调函数的this
	- ok `Function` 确认按钮回调函数，接收一个参数：
		- files `Array` 选择的文件地址列表，数组
	- cancel `Function` 取消按钮回调函数。无参数
- 返回 `underfind` 
>调起插件界面，插件效果和传入的配置参数相关

# **配置参数说明**

<p id="upload_url"></p>

## **upload_url** 
请求参数格式
```json
{
	"file" : "文件二进制数据"
}
```
返回参数格式
```json
{
	"code": 1, // 1表示上传成功，0表示上传失败
	"msg": "", //提示信息，一般只有失败才给予提示
	"data": ["文件1的url","文件2的url",...] // 文件url地址列表，数组
}
```

<p id="filelist_url"></p>

## **filelist_url** 
请求参数格式
```json
{
	"accept" : "配置参数的accept值",
	"dir" : "文件目录名称",
}
```
返回参数格式
```json
{
	"code": 1, // 1表示上传成功，0表示上传失败
	"msg": "", //提示信息，一般只有失败才给予提示
	"data": {
		"dirs": ["目录1","目录2",...], // 目录列表，数组。用于点击目录的时候，发送filelist_url请求的dir参数
		"files": ["文件1的url","文件2的url",...] // 文件url地址列表，数组
	}
}
```

<p id="accept"></p>

## **accept** 
由于MMIME类型不便记忆，所以文件类型限制采用文件后缀名，包括：
jpg、jpeg、png、gif、ico、webp、
mp4、avi、wmv、
mp3、aif、aiff、wav、
wma、
txt、html、htm、js、css、xml、jsp、asp、pdf
ppt、xls、doc、pptx、xlsx、docx
未完待续...
