微信小程序查看并下载pdf文件

316 阅读1分钟

之前没在微信小程序上下载过dpf,以为可麻烦,研究了好久,现在整理一下:

因为后端给的一个dpf链接是内网链接,所以我叫后台把文件转成了base64给我

async showPDF(picData,type){
if(picData.EinUrlOutHos){
	// #ifdef MP-WEIXIN
const res=await this.$http({
	url: '/Query/GetPdfToBase64?pdfUrl='+encodeURIComponent(picData.EinUrlInHos),
	method: 'POST',
	timeout: 30000
}).catch(e=>{
	console.log(e)
})
if(res.Code===0){
	console.log("进来了")
	let pdfBase64=`data:application/pdf;base64,${res.Data}`
	let fs=wx.getFileSystemManager();
	let fileName=''
	let times=new Date().getTime();
fs.writeFile({
	filePath:wx.env.USER_DATA_PATH+'/'+times+'.pdf',
	data:wx.base64ToArrayBuffer(res.Data.replace(/[\r\n]/g,'')),
	success:res=>{
let ll=wx.env.USER_DATA_PATH+'/'+times+'.pdf'
wx.openDocument({
	fileType:'pdf',
	showMenu:true,
	filePath:wx.env.USER_DATA_PATH+'/'+times+'.pdf',
	success:function(res){
console.log('打开PDF成功')
console.log(res)
	},
	fail(err){
console.log(err)
	}
});	
	}
});
}

	// #endif
	
}

}

最重要的是showMenu:true,设置这个后在打开的pdf页面右上角会有下载pdf的按钮。