Go to file
yangchch6 5b4739799b publish 2.1.2 2020-04-08 12:02:14 +08:00
.idea dist 2017-11-16 16:18:09 +08:00
build publish 2.1.2 2020-04-08 12:02:14 +08:00
demo 开放预览方法,以实现自定义预览 2020-04-08 09:49:53 +08:00
dist feat: 增加enterDragger、leaveDragger回调 2020-01-17 11:08:06 +08:00
docs feat: 增加enterDragger、leaveDragger回调 2020-01-17 11:08:06 +08:00
src 开放预览方法,以实现自定义预览 2020-04-08 09:49:53 +08:00
test 测试用例 2016-12-14 15:18:21 +08:00
.DS_Store 增加文件上传类型和大小限制的demo,且针对prop-types.min.js文件的单独引入的调整 2017-10-11 10:30:01 +08:00
.eslintignore bee-upload 2016-12-13 16:48:18 +08:00
.gitignore dist 2017-11-16 16:18:09 +08:00
.npmignore react改为development npm发包忽略 demo,docs,test,dist目录 2020-03-30 11:24:01 +08:00
.travis.yml bee-upload 2016-12-13 16:48:18 +08:00
CHANGELOG.md publish 2.1.2 2020-04-08 12:02:14 +08:00
HISTORY.md bee-upload 2016-12-13 16:48:18 +08:00
README.md 开放预览方法,以实现自定义预览 2020-04-08 09:49:53 +08:00
index.html react改为development npm发包忽略 demo,docs,test,dist目录 2020-03-30 11:24:01 +08:00
package-lock.json fix(bee-upload): beforeUpload 第二个参数还原 2019-12-20 13:39:46 +08:00
package.json publish 2.1.2 2020-04-08 12:02:14 +08:00

README.md

bee-upload

npm version Build Status devDependency Status

通过Upload可以将资源web page,text,picture,video...)传到远程服务器

使用

使用单独的Upload包

组件引入

先进行下载Upload包

npm install --save bee-upload

组件调用

import { Upload } from 'bee-upload';

const props = {
  name: 'file',
  action: '/upload.do',
  headers: {
    authorization: 'authorization-text',
  },
  onChange(info) {
    if (info.file.status !== 'uploading') {
      console.log(info.file, info.fileList);
    }
    if (info.file.status === 'done') {
      console.log(`${info.file.name} file uploaded successfully`);
    } else if (info.file.status === 'error') {
      console.log(`${info.file.name} file upload failed.`);
    }
  },
};

class Demo1 extends Component {
	render(){
		return( 
			<Upload {...props}>
        <Button type="primary" shape="border">
          <Icon type="upload" /> Click to Upload
        </Button>
      </Upload>
		)
	}
}

React.render(<Demo1 />, document.getElementById('target'));

样式引入

  • 可以使用link引入dist目录下upload.css
<link rel="stylesheet" href="./node_modules/build/bee-upload.css">
  • 可以在js中import样式
import "./node_modules/src/Upload.scss"
//或是
import "./node_modules/build/bee-upload.css"

API

参数 说明 类型 默认值
name 文件名 string file
defaultFileList 默认已上传的文件列表 array -
fileList 已上传的文件列表,多用于onChange事件里 array -
action 上传的服务器地址 array -
data 上传参数或者函数 Object or function -
size 上传文件的大小限制单位是byte number 1024000
headers 设置请求的头部信息 兼容ie10以上 object -
showUploadList 是否显示上传列表 bool true
multiple 是否支持多文件上传 兼容ie10以上 bool false
accept 设置文件接收类型 string -
beforeUpload 在上传之前执行的函数当Promise返回false或者被拒绝函数被中指。不兼容老ie func -
customRequest 覆盖默认的XHR,可定制自己的XMLHttpRequest func -
onChange 当上传状态改变之后执行的回调函数 func -
onPreview 点击预览时执行的回调方法参数为当前点击的上传文件对象若要阻止默认预览需return false func -
preventDefaultPreview 点击预览时如果要阻止默认预览请设置为true默认值为false func -
listType 内置的样式支持text和picture string 'text'
onRemove 当删除按钮点击后触发的回调函数 func -
supportServerRender 当服务器正在渲染时,是否需要打开 bool false

onChange

当文件正在上传,上传成功和上传失败触发的回调函数。 当上传状态发生变化,返回下列参数。

{
  file: {
	   uid: 'uid',      // 唯一性id
	   name: 'xx.png'   // 文件名
	   status: 'done',  // 参数uploading, done, error, removed
	   response: '{"status": "success"}',  // 服务器返回的参数
	},
  fileList: [ /* ... */ ], //当前文件列表
  event: { /* ... */ }, //服务器响应:包括上传进度  不兼容老的浏览器
}

IE兼容

IE8/9 Note

下载弹出窗口问题

使用iframe方式上传时,响应response的content-type应该是 text/plain或者 text/html.referense

此外在iframe模式下响应的状态应始终为200 OK否则可能会在IE 8/9中获得Access被拒绝的错误。

域问题

如果页面设置document.domain,则服务器应根据_documentDomain参数输出document.domain

var ret = '';
if (postData._documentDomain) {
  ret += '<script>document.domain="'+postData._documentDomain+'";</script>';
}
this.body = ret + '{"url":"xx.jpq"}';

开发调试

$ git clone https://github.com/tinper-bee/bee-upload
$ cd bee-upload
$ npm install
$ npm run dev