gpt4 book ai didi

reactjs - 如何在reactJS中显示从输入类型=文件中选择的图像

转载 作者:行者123 更新时间:2023-12-03 13:20:54 33 4
gpt4 key购买 nike

我正在尝试在网络应用程序中显示从我的计算机中选择的图像。我提到了以下问题,它解决了我试图解决的问题。

How to display selected image without sending data to server?

我的 html 部分是这样的

 <div className="add_grp_image_div margin_bottom">
<img src={img_upload} className="add_grp_image"/>
<input type="file" className="filetype" id="group_image"/>
<span className="small_font to_middle">Add group image</span>
<img id="target"/>
</div>

我想在中显示所选图像

<img id="target"/>

我该怎么做?

我也引用了 FileReader 文档。

https://developer.mozilla.org/en-US/docs/Web/API/FileReader

最佳答案

Hook 版本:

const [image, setImage] = useState(null)

const onImageChange = (event) => {
if (event.target.files && event.target.files[0]) {
setImage(URL.createObjectURL(event.target.files[0]));
}
}

return (
<div>
<input type="file" onChange={onImageChange} className="filetype" />
<img alt="preview image" src={image}/>
</div>
)

类版本

render() {
return (
<div>
<input type="file" onChange={onImageChange} className="filetype" />
<img alt="preview image" src={this.state.image}/>
<div/>
)
}

onImageChange = (event) => {
if (event.target.files && event.target.files[0]) {
this.setState({image: URL.createObjectURL(event.target.files[0])});
}
}

另一种解决方案是使用FileReader

onImageChange = (event) => {
if (event.target.files && event.target.files[0]) {
let reader = new FileReader();
reader.onload = (e) => {
setImage(e.target.result);
};
reader.readAsDataURL(event.target.files[0]);
}
}

工作演示:https://codesandbox.io/s/priceless-cerf-my900b

关于reactjs - 如何在reactJS中显示从输入类型=文件中选择的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43992427/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com