开发者问题收集

reactjs如何从表单输入多个文件

2016-05-27
30332

我有一个类似这样的组件:

class Media extends Component {

    render() {
        return (

                    <form className="uploader" encType="multipart/form-data">
                        <input type="file" id="file" />
                    </form>

        )
    }
}

export default Media

在这里我想上传多个 file 。在 HTML 中,我们可以这样做

<input type="file" name="img" multiple>

如何在 reactjs 中拥有 multiple 值? 提前谢谢您

更新

class Media extends React.Component {

    handleChange(e) {
    console.log(e.target.value)
  }

    render() {
        return (

                    <form className="uploader" encType="multipart/form-data">
                        <input type="file" id="file" multiple onChange={this.handleChange.bind(this)}/>
                    </form>

        )
    }
}

ReactDOM.render(
  <Media />,
  document.getElementById('container')
);

在这里,如果我上传图像并且值发生变化,我只能获得第一张图片,如何获取所有上传的图片?

2个回答

您可以在 React 中执行相同操作。您可以在 此处 找到可使用的 attributes

class Media extends React.Component {
  render() {
    return (
      <form
        className="uploader"
        encType="multipart/form-data"
      >
        <input type="file" id="file" multiple />
      </form>
    )
  }
}  

ReactDOM.render(
  <Media /> ,
  document.getElementById('container')
);
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>
<div id="container"></div>
Oleksandr T.
2016-05-27

属性 multitple 以前可能有效,但不幸的是,在我的 ReactJS 版本(16.8.4)中它无法工作 - 但使用属性 webkitdirectory=“true” 可以工作。

class Media extends React.Component {
  render() {
    return (
      <form
        className="uploader"
        encType="multipart/form-data"
      >
      
      <input 
        type="file" 
        id="file" 
        webkitdirectory="true" 
       />
      
      </form>
    )
  }
}  

ReactDOM.render(
  <Media /> ,
  document.getElementById('container')
);
<script crossorigin src="https://unpkg.com/react@16/umd/react.development.js"></script>
<script crossorigin src="https://unpkg.com/react-dom@16/umd/react-dom.development.js"></script>
<div id="container"></div>
NorahKSakal
2019-03-18