300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > pc文件预览--xls xlsx doc docx ppt pptx txt

pc文件预览--xls xlsx doc docx ppt pptx txt

时间:2024-02-07 22:51:47

相关推荐

pc文件预览--xls xlsx doc docx ppt pptx txt

1.xls、xlsx、doc、docx、ppt、pptx、

属于office的预览,可以使用office的预览接口即可(需要考虑安全性)或者插件(file-viewer etc.)

格式:要预览的文件地址='https://view./op/view.aspx?src='+要预览的文件地址

let URL = `https://view./op/view.aspx?src=${encodeURI(filePath)}&name=${encodeURI(fileName)}`//一般打开新窗口预览,利用window.open(URL)//或者<a href={URL} target="_blank" rel="noopener noreferrer" >{fileName}</a>

2.txt

txt文件,利用a标签浏览器本身可以打开,或者使用iframe,但是可能会存在乱码(原因:没有使用utf-8解析),一般charset国内都采用utf-8格式,解决办法--利用接口获取数据,将数据转化为utf-8格式,再操作DOM将其插入节点内即可。

const loadFile = (path) => { let xhr = new XMLHttpRequest()xhr.open('GET', path, false); xhr.overrideMimeType("text/html;charset=utf-8");//默认为utf-8 xhr.send(null);//需要等DOM结构生成或者放在钩子里面即可setTimeout(() => {let preview = document.getElementById("preview");preview.innerText = `${xhr.responseText}`;}, 1000);}

txt文件mimeType使用utf-8下载时可能会产生报错,拉取数据失败,失败原因是拉取的txt文件格式问题,后端那边需要加入一行代码,但是由于是采用的是第三方服务,反馈也需要时间修改,自立更生吧,只能把格式切换为blob数据流就可以拉取,利用返回提取文字

// 最好用 try catch 包裹一下让页面不挂try {axios({method: 'get',url: `${path}?time=${new Date().getTime()}`,responseType: 'blob'}).then(res => {new Response(res.data).text().then(txt => {console.log(txt);});}).catch((error) => {// console.log(error);})} catch (error) {// console.log(error)}

参考文档:前端实现文件在线预览txt,pdf,doc,xls,ppt几种格式 - 思绪在漫游 - 博客园

前端 txt 文件转码方案 - 掘金

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。