刷爆!Js上传文件file大全

1:在react中,用Ant Dsign框架的上传组件Upload;
1-1:先引入上传组件Upload,定义上传事件customRequest
1-2:在事件里面创建上传文件的形式,const formData = new FormData();文件一般指file
1-3:在file里面添加属性和属性值
1-4:调用接口,将要上传的flie的参数传递进去

  //创建文件file
 const formData = new FormData();
 //在file里面添加属性和属性值
 formData.append("file", value.file);
 formData.append("name",  value.file.name);
 formData.append("infoID", docuid);
 //调用上传的接口
 postuploaddoc(formData)
      .then(res=>{
      	console.log(res)
      })

完整的前端上传代码:

import React, { Component } from 'react'
import { Upload, message} from '@uyun/components'
import { postuploaddoc} from '~/services/api'
/**
 * 编辑文档加载doc的view
 */
@observer
export default class DocView extends Component {
  constructor (props) {
    super(props)
    this.state = {
      docuid: null,   //初始化的文档id
    }
  }
  
  componentDidMount () {
    const {documentid} = this.props;
    this.setState({
      docuid: documentid
    })
  }

  //用于自定义的上传事件
  customRequest = (value) => {
    const formData = new FormData();
    const {docuid} = this.state;
    //上传本地附件时候所提交的附件参数信息
    formData.append("file", value.file);
    formData.append("name",  value.file.name);
    formData.append("infoID", docuid);

    postuploaddoc(formData)
      .then(res=> {
        let num = [];  //声明一个空数组
        num.push(res);
        let numfils = this.state.data.concat(num);
        if(res.message=='上传成功'){
          this.setState({
            data: numfils
          })
          message.success('上传成功')
        }
      })
  }

  render () {
    const props = {
      name: 'file',
      action: 'http://localhost:8080',
      headers: {
        authorization: 'authorization-text',
      },
    };

    return (
            <Upload {...props}  customRequest={this.customRequest}>
              <div style={{marginLeft: 445}}><Button>上传附件</Button></div>
            </Upload> 
    )
  }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值