react antd 表單里的上傳圖片


import React, { Component } from 'react'
import { Form, Upload, Button, message } from 'antd';

export default @Form.create()
class ImgUpload extends Component {

  handleSubmit = e => {
    e.preventDefault();
    this.props.form.validateFields((err, values) => {
      if (!err) {
        console.log(values);
      }
    })
  }
  // 上傳之前做一些驗證
  beforeUpload = e => {
    if( e.type != 'image/png' ) {
      message.error('格式不對')
      return false
    }
  }
  // 准備上傳,上傳中,上傳后
  normFile = e => {
    if( e.file.type != 'image/png' ) return false //這里也做一個驗證
    if ( Array.isArray(e) ) return e
    return e && e.fileList;
  }

  render() {
    const { getFieldDecorator } = this.props.form
    return (
      <div className='page_imgUpload'>
        <Form onSubmit={this.handleSubmit}>
          <Form.Item label="Upload">
            {getFieldDecorator('upload', {
              valuePropName: 'fileList',
              getValueFromEvent: this.normFile,
            })(
              <Upload 
                name="file" //這個name 字段是后台接口的一個參數名,必填
                action="https://www.mocky.io/v2/5cc8019d300000980a055e76"
                beforeUpload = {this.beforeUpload}  //上傳前的回調,用來處理用戶格式不正確的邏輯
              >
                <Button>
                  Click to upload
                </Button>
              </Upload>,
            )}
          </Form.Item>
          <Form.Item>
            <Button type="primary" htmlType="submit">
              Submit
            </Button>
          </Form.Item>
        </Form>
      </div>
    )
  }
}

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM