Chorme谷歌浏览器使用input = file类型预览本地PDF文件:
需求:使用el-upload选中本地文件后,点击选中后的文件列表,能够在谷歌浏览器中预览,不使用pdf.js或者jquery.media.js等插件。
解决问题的思路:
由于出于安全考虑,input 表单 file类型的文件无法获取本地文件的绝对路径,只能获取相对路径,所以要通过浏览器的方法创建文件的路径,或者复制路径。
解决方案:
参考【input file获取文件路径】这篇博客,在不同的浏览器下获取文件的路径。
具体代码是:
const getFiletUrl = (file)=> {
let urlAdress = null;
if (window.createObjectURL != undefined) {
// basic
urlAdress = window.createObjectURL(file);
} else if (window.webkitURL != undefined) {
// webkit or chrome
urlAdress = window.webkitURL.createObjectURL(file);
} else if (window.URL != undefined) {
// mozilla(firefox)
urlAdress = window.URL.createObjectURL(file);
}
return urlAdress;
}
备注:
这里需要说明的是使用element-plus框架中的el-upload获取文件列表,通过on-change钩子函数获取file.raw的文件。其余代码未贴。