本地文件上传按钮组件

13 篇文章 0 订阅
5 篇文章 0 订阅

封装一款好看的文件上传按钮

import React from 'react';
import './index.scss';

class SelectFileButton extends React.Component {
  constructor(props) {
    super(props);
  }

  onChange = (event) => {
    let e = event || window.event;
    let files = e.target.files;
    if (files.length > 0) {
      let file = e.target.files[0];
      let reader = new FileReader(); // 创建一个 filereader对象
      reader.onload = (e) => {
        const data = reader.result;
        // 获取得到的文件信息
        this.props.onChange && this.props.onChange(data);
        // 数据回传之后将值置空,避免重复选择不触发onChange事件
        this.refs["file-select"].value = '';
      };
      reader.readAsText(file, 'utf-8');
    }
  };

  render() {
    return (
      <label className="file-select-wrap">
        <input 
        	type="file" 
        	onChange={(e) => this.onChange(e)}
        	ref="file-select" 
        />
        导入流程图
      </label>
    );
  }
}

export default SelectFileButton;

css文件

.file-select-wrap {
  display: inline-block;
  margin-right: 10px;
  height: 32px;
  line-height: 32px;
  background-color: #2e85ff;
  border-color: transparent;
  color: #ffffff;
  border-radius: 4px;
  padding: 0 12px;
  font-size: 12px;
  cursor: pointer;

  >input[type='file'] {
    display: none;
  }
}

.file-select-wrap:hover {
  background-color: #579dff;
}

调用

 <SelectFileButton onChange={函数回调} />
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值