您当前的位置: 首页 > 

【03】

暂无认证

  • 1浏览

    0关注

    196博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

react-file-viewer预览本地文件

【03】 发布时间:2021-05-15 13:28:10 ,浏览量:1

代码
import React, {Component} from 'react';
import FileViewer from 'react-file-viewer';

export default class MyComponent extends Component {
    state = {
        fileLocalUrl: null,
        type: ''
    }
    changeFile(e) {
        let file = e.currentTarget.files[0]
        let fileName = file.name
        console.log(file)
        window.URL = window.URL || window.webkitURL;
        this.setState({
            fileLocalUrl: window.URL.createObjectURL(file),
            type: fileName.substring(fileName.lastIndexOf(".") + 1, fileName.length)
        })
    }

    render() {
        const {fileLocalUrl, type} = this.state
        return (
            
                {
                    fileLocalUrl && 
                }
                 this.changeFile(e)}/>
            

        );
    }

}

能遇到这个问题的大部分都是直接把file丢进组件,导致报错

解决思路:window.URL.createObjectURL,创建文件对象的URL,将URL丢进组件即可

在移除文件对象URL的时候记得调用URL.revokeObjectURL(url),清理内存,否则会一直存在内存中,详见官网

https://developer.mozilla.org/zh-CN/docs/Web/API/URL/createObjectURL

对于大文件可能会导致内存崩溃,切记不要预览大文件,最好限制在30M以内

关注
打赏
1657344724
查看更多评论
立即登录/注册

微信扫码登录

0.0353s