// 选择成功后本地预览
localView(fileUrl,fileName){
// /storage/emulated/0/bluetooth/文档.pdf
let type = fileUrl.slice(fileUrl.lastIndexOf('.')+1).toLowerCase();//文件名称后缀
let name = fileUrl.substr(fileUrl.lastIndexOf('/')+1);//文件名带后缀
if(!fileName)fileName = name;
if(name.includes("png")||name.includes("jpg")||name.includes("jpeg")||name.includes("bpm")||name.includes("gif")||name.includes("svg")){
// 图片回显不了解决办法
function getBaseFile(){
return new Promise((resolve,reject)=>{
window.resolveLocalFileSystemURL(fileUrl,(fileEntry)=>{
// console.log('读取到的图片信息:',fileEntry)
fileEntry.file(file=>{
console.log('读取到的图片file:',file)
let reader = new FileReader();
reader.readAsDataURL(file);
reader.onloadend = (e)=>{
let base64 = e.target.result;
resolve(base64)
}
},(err)=>{console.log('文件读取失败:',err);resolve('')})
},(err)=>{
resolve('')
console.log('resolveLocalFileSystemURL错误:',err)
})
})
}
getBaseFile().then(url=>{
console.log('处理后新的url:',url)
this.fileImgList.push({type:'image',src:fileUrl,att_name:fileName,showURL:url});
console.log('图片列表:',this.fileImgList);
});
return;
}
if(name.includes("mp3")||name.includes("m4a")||name.includes("acc")||name.includes("flac")||name.includes("amr")){
// 录音文件名字获取到的是 标准1 标准2 字样,统一改为日期
// this.fileAudioList.push({type:'audio',src:fileUrl,att_name:fileName|| ((new Date().format('yyyy-MM-dd hh:mm:ss '))+'.'+ type)});
this.fileAudioList.push({type:'audio',src:fileUrl,att_name:((new Date().format('yyyy-MM-dd hh:mm:ss '))+'.'+ type)});
console.log('音频列表:',this.fileAudioList);
return;
}
if(name.includes("mp4")||name.includes("3gp")||name.includes("avi")||name.includes("wmv")||name.includes("flv")){
this.fileVideoList.push({type:'video',src:fileUrl,att_name:fileName|| ((new Date().format('yyyy-MM-dd hh:mm:ss '))+'.'+ type)});
console.log('视频列表:',this.fileVideoList);
return;
}
// if(name.includes('xlsx')||name.includes('xls')||name.includes('doc')||name.includes('docx')||name.includes('pdf')||name.includes('zip')||name.includes('rar')||name.includes('apk')||name.includes('txt')) {
this.otherFileList.push({type:'file',src:fileUrl,att_name:fileName});
console.log('其它文件列表:',this.otherFileList);
// return;
// }
this.$Toast.fail('所选文件不符合格式');
},
1:FileReader : 读取文件内容
readAsText() 读取文本文件,(可以使用Txt打开的文件)
readAsBinaryString(): 读取任意类型的文件,返回二进制字符串
readAsDataURL: 方法可以将读取到的文件编码成DataURL ,可以将资料(例如图片、excel文件)内嵌在网页之中,不用放到外部文件
abort: 中断读取
2:FileReader 提供一个完整的事件模型,用来捕获读取文件的状态
onabort:读取文件断片时触发
onerror:读取文件错误时触发
onload:文件读取成功时触发
onloadend:文件读取完毕之后,不管成功还是失败触发
onloadstart: 开始读取文件时触发
onprogress:读取文件过程中触发