如何将服务器上的pdf在页面上预览

                    const res: any = await fetch(`${selected_content?.doc_type}`);
                       res.blob().then((v: any) => {
                        let blob = new Blob([v], { type: 'application/pdf' })
                        const url = URL.createObjectURL(blob);
                        anchorJsx = <div style={{height: '100%'}}>
                           <iframe src={url} title="pdf" width="100%" height="100%"/>
                        </div>
                        set_anchor_jsx(anchorJsx)
                    })

1.首先上述代码一行返回一个Response对象,这返回数据就是一个流stream,可以使用blob() 方法去读取,解析成Blob格式的promise对象,如下图所示:Response - Web API 接口参考 | MDNFetch API 的 Response 接口呈现了对一次请求的响应数据。https://developer.mozilla.org/zh-CN/docs/Web/API/Response

2.下面使用new Blob设定返回值v的格式为pdf,返回的依旧是一个Blob对象;

3.下面是使用 URL.createObjectURL方法,下面是官方的讲解:

解析出的url可以使用习惯的方式进行文件的预览展示,以iframe为例:

<iframe src={url} title="pdf" style={{height: '100vh', width: '100%'}} />

注:下载pdf的文件也可以使用blob对象,用a.href,download属性进行下载。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值