【问题标题】:React: File preview for PFD/docx/xls/jpgReact:PFD/docx/xls/jpg 的文件预览
【发布时间】:2018-11-27 13:24:54
【问题描述】:

如何使用 React.js 或 web 显示 PFD/docx/xls/jpg 文件的文件预览?

之前有人问过这个问题,但没有人回答,所以我试图引起更多关注: React File Preview (FIREBASE)

File preview for web

请有人回答。

【问题讨论】:

标签: javascript reactjs file


【解决方案1】:

您可以使用 FileReader 班级。

此类将加载预览并在完成后执行回调,您可以在其中设置组件的状态。

工作示例:

class PicturePreview extends React.Component {
    constructor(props) {
        super(props)

        this.state = {
            preview: ''
        }
    }

    fileUploaded = ev => {
        const reader = new FileReader()
        reader.readAsDataURL(ev.target.files[0])
        reader.onloadend = ev => {
            this.setState({ preview: reader.result })
        }
    }

    render() {
        const { preview } = this.state

        return (
            <div>
                <input type='file' onChange={this.fileUploaded} />
                {preview && <img className='previewFile' src={preview} alt='preview' />}
            </div >
        )
    }
}

ReactDOM.render(<PicturePreview/>, document.getElementById('root'))
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.5.2/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.5.2/umd/react-dom.production.min.js"></script>
<div id='root'>

【讨论】:

  • 此解决方案仅适用于图像文件。不适用于 PFD/docx/xls
  • 是的,这在我的回答的第一句话中有所说明
  • @Treycos 然后不需要这个库和额外的工作,您可以使用 URL.createObjectURL() 方法创建对象 url 并将其作为 src 提供给图像。问题是要预览所有类型的文件,而不仅仅是图像文件。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-01
  • 1970-01-01
  • 2018-11-01
  • 1970-01-01
  • 2021-09-25
  • 1970-01-01
相关资源
最近更新 更多