You*_* L. 2 html javascript image reactjs
嗨,我有反应问题。我有一个方法,点击后开始导入图像。实际上,我在我的文件输入上使用了这种方法的 onChangeevent:
fileUploadInputChange(e) {
console.log(e.target.value); // return url of image like C:\fakepath\pokemon-pikachu-wall-decal.jpg
};
Run Code Online (Sandbox Code Playgroud)
现在我必须将此上传的文件转换为 blob。请问我该怎么做?
我的其他代码如下所示:
export class GeneralySettings extends Component {
/**
* PropTypes fot component
* @return {object}
*/
static get propTypes() {
return {
userData: PropTypes.object.isRequired,
};
};
constructor(props) {
super(props);
this.state = {
showAvatarChangeButton: false,
uploadedImage : '',
};
this.inputReference = React.createRef();
}
fileUploadAction(){
this.inputReference.current.click();
};
fileUploadInputChange(e){
console.log(e.target.value);
};
/**
* Render method for user profile
* @return {*}
*/
render() {
return (
<div className={'d-flex flex-column mr-2'}>
<div className={'position-relative'}
onMouseEnter={() => this.setState({showAvatarChangeButton: true})}
onMouseLeave={() => this.setState({showAvatarChangeButton: false})}>
<Avatar name="Foo Bar" className={'position-relative button-cursor'}/>
<div
className={`position-absolute ${(this.state.showAvatarChangeButton ? 'd-inlene-block' : 'd-none')}`}
id={'changeAvatarButton'}>
<Button variant={'dark'} size={'sm'} block
onClick={this.fileUploadAction.bind(this)}> Zmeni?</Button>
<input type="file" hidden ref={this.inputReference}
onChange={(e) => this.fileUploadInputChange(e)}/>
</div>
</div>
);
}
}
Run Code Online (Sandbox Code Playgroud)
这是一个示例,您将如何使用 FileReader.readAsDataURL
const {useState} = React;
const fileToDataUri = (file) => new Promise((resolve, reject) => {
const reader = new FileReader();
reader.onload = (event) => {
resolve(event.target.result)
};
reader.readAsDataURL(file);
})
const App = () => {
const [dataUri, setDataUri] = useState('')
const onChange = (file) => {
if(!file) {
setDataUri('');
return;
}
fileToDataUri(file)
.then(dataUri => {
setDataUri(dataUri)
})
}
return <div>
<img width="200" height="200" src={dataUri} alt="avatar"/>
<input type="file" onChange={(event) => onChange(event.target.files[0] || null)} />
</div>
}
ReactDOM.render(
<App/>,
document.getElementById('root')
);Run Code Online (Sandbox Code Playgroud)
<script src="https://unpkg.com/react/umd/react.development.js"></script>
<script src="https://unpkg.com/react-dom/umd/react-dom.development.js"></script>
<script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script>
<div id="root"></div>Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11294 次 |
| 最近记录: |