钉钉小程序上传预览下载word,pdf文档等一系列问题
小程序”用完即走“的理念使得有着很好的发展市场,不仅微信小程序,支付宝,钉钉小程序等都受用户的喜爱。
刚接触了一个企业内部应用的钉钉小程序,又一个上传word,pdf等文件,并且需要预览和下载,经过对文档的深入琢磨,有了以下的处理方法。
1、上传附件到钉盘/从钉盘选择文件
上传文件需要获取企业自定义钉盘空间,也需要授权上传
//上传文件
onFile(){
var that=this;
app.post('/user/space/index',{
}).then(res => {
console.log(res,'上传文件')
if(res.data.code==0){
var space = that.data.space_id; //首先要获取企业自定义钉盘空间
dd.uploadAttachmentToDingTalk({
image:{multiple:true,compress:false,max:9,spaceId:space},
space:{spaceId:space,isCopy:1,max:9},
file: {spaceId:space,max:9},
types:["photo","camera","file","space"],
success: (res) => {
console.log(res)
var fileData=res.data;
fileData=fileData.concat(that.data.fileData);
that.setData({
fileData:fileData
});
},
fail: (err) =>{
dd.alert({
content:JSON.stringify(err)
})
}
})
}else if(res.data.code==1){
dd.alert({
title: '未授权,请联系管理员授权',
});
}
})
},
2、钉盘文件预览
钉盘预览也需要获取到企业自定义钉盘空间,传入spaceId,并且需要授权下载,传入需要下载的文件id列表
//预览文件
onFileIpt(event){
var file=event.target.dataset.attr;
app.post('/user/space/index',{ //获取企业自定义钉盘空间
}).then(res => {
console.log(res)
if(res.data.code==0){
app.post('/user/download/index',{ //授权下载权限
file_id:file.fileId
}).then(res => {
if(res.data.code==0){
dd.previewFileInDingTalk({ //预览
spaceId:file.spaceId,
fileId:file.fileId,
fileName:file.fileName,
fileSize:file.fileSize,
fileType:file.fileType,
success: (res) => {
console.log(res)
},
fail: (err) =>{
console.log(err)
}
})
}else{
dd.alert({
title: '下载未授权,请联系管理员授权',
});
}
}
}else if(res.data.code==1){
dd.alert({
title: '未授权,请联系管理员授权',
});
}
})
},