我有一个类似的组件:
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>
我如何在multiple
中拥有reactjs
值?
提前谢谢
更新
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')
);
如果我上传图片并且值已更改,我只会获得第一张图片如何获取所有上传的图片?
答案 0 :(得分:4)
你可以在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>
#include <vector>
#include <iostream>
#include <algorithm>
class IFruit
{
public:
virtual ~IFruit(){};
};
class Apple : public IFruit {};
class Banana : public IFruit {};
class Orange : public IFruit {};
class FruitBowl
{
public:
template <typename T>
bool HasFruit()
{
return std::any_of(m_Fruit.begin(), m_Fruit.end(),
[](IFruit* fruit) {
return dynamic_cast<T*>(fruit) != nullptr;
});
}
std::vector< IFruit* > m_Fruit;
};
int main()
{
FruitBowl Snacks;
Snacks.m_Fruit.push_back( new Banana );
Snacks.m_Fruit.push_back( new Apple );
Snacks.m_Fruit.push_back( new Orange );
if ( Snacks.HasFruit<Orange>() )
{
std::cout << "There is an orange available";
}
}
答案 1 :(得分:1)
属性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>