pdf上传
上传两种方法:
上传1:
1.用vant weapp组件:
//pdf上传--vant weapp组件
<view class="content">
<van-uploader
file-list="{{ fileList }}"
bind:after-read="afterReadFile"
accept="file"
upload-icon="plus"
preview-size="30px"
max-count="1"
deletable="{{deletableFile}}"
>
</van-uploader>
</view>
page({
data:{
fileList:[],//pdf上传
}
})
afterReadFile: function (e) {
let that = this;
const { file } = e.detail;
let myId = that.data.myId; //
console.log(file,1000);
wx.uploadFile({
url: api.hhh+'?file='+file.url+'&schedulingId='+myId,//服务器上的pdf地址
filePath: file.url,
name: 'file',
// formData: {
// file: file.url,
// schedulingId:myId
// },
success(res) {
// 上传完成需要更新 fileList
const { fileList = [] } = that.data;
fileList.push({ ...file });
that.setData({ fileList });
},
});
},
上传2:
<view class="content" bindtap="uploadFileTap">
上传
</view>
//pdf上传--原生组件
uploadFileTap:function(e){
let that = this;
let myId = that.data.myId;
wx.chooseMessageFile({
count: 1,
type: 'file',
success (res) {
// tempFilePath可以作为img标签的src属性显示图片
const tempFilePaths = res.tempFiles
wx.uploadFile({
url: url,//服务器上的pdf地址
filePath: tempFilePaths[0].path,
name: 'file',
formData: {
file: tempFilePaths[0].path,
schedulingId:myId
},
success (res){
const data = res.data
//do something
wx.showToast({
title: '数据上传成功!',
icon: 'none',
duration: 3000
})
}
})
}
})
},
pdf下载
参考:https://blog.csdn.net/weixin_38566069/article/details/110229404
//下载pdf
downloadPDF:function(e){
let that = this;
let myId = that.data.myId;
wx.showLoading({
title: '加载中...',
mask: true
});
//获取pdf地址
app.get(api.xxxx, {
schedulingId: myId, //
}).then(res => {
if (res.code == 200) {
wx.hideLoading()
let pdfUrl=res.data ? (res.data.pdfUrl ? res.data.pdfUrl : null) : null
if(pdfUrl){
const fileExtName = ".pdf";
const randfile = new Date().getTime() + fileExtName;
const newPath = `${wx.env.USER_DATA_PATH}/${randfile}`;
that.deletContract();
//下载
wx.downloadFile({
url: pdfUrl,
filePath: newPath,
success: function (res) {
const filePath = res.tempFilePath;
wx.openDocument({
filePath: newPath,
showMenu: true,
fileType: 'pdf',
success: function (res) {}
})
},
fail: function (res) {
wx.hideLoading();
}
})
}else{
wx.showToast({
title: '请先上传pdf数据!',
icon: 'none',
duration: 3000
})
}
} else {
wx.hideLoading()
wx.showToast({
title: '获取数据失败!',
icon: 'none',
duration: 3000
})
}
}).catch((err) => {
wx.hideLoading()
wx.showToast({
title: 'err',
icon: 'none',
duration: 3000
})
});
},
// 删除本地文件
deletContract() {
try {
let file = wx.getFileSystemManager();
file.readdir({
dirPath: `${wx.env.USER_DATA_PATH}`,
success: res => {
console.log(res);
if (res.files.length > 2) {
file.unlink({
filePath: `${wx.env.USER_DATA_PATH}/${res.files[0]}`,
complete: res => {}
})
}
}
})
} catch (error) {}
},
导出excel
//导出Excel
downloadExcel:function(e){
let that = this;
let myId = that.data.myId;
wx.showLoading({
title: '加载中...',
mask: true
});
app.get(api.xxxExcel, {
schedulingId: myId,
}).then(res => {
if (res.code == 200) {
let excelUrl=res.data ? res.data : null
if(excelUrl){
let type=excelUrl.split('.').pop();
let fileExtName = "";
if(type==''){//空
wx.showToast({
title: '导入的非Excel文件!',
icon: 'none',
duration: 3000
})
return false
}else if(type=='xls'){
fileExtName=".xls"
}else if(type=='xlsx'){
fileExtName=".xlsx"
}
const randfile = new Date().getTime() + fileExtName;
const newPath = `${wx.env.USER_DATA_PATH}/${randfile}`;
that.deletContract();
wx.downloadFile({
url: excelUrl,
filePath: newPath,
success: function (res) {
wx.hideLoading()
const filePath = res.filePath;
wx.openDocument({
filePath: newPath,
showMenu: true,
fileType: type,
success: function (res) {}
})
},
fail: function (res) {
wx.hideLoading();
}
})
}else{
wx.showToast({
title: '请先上导入Excel数据!',
icon: 'none',
duration: 3000
})
}
} else {
wx.hideLoading()
wx.showToast({
title: '获取Excel数据失败!',
icon: 'none',
duration: 3000
})
}
}).catch((err) => {
wx.hideLoading()
wx.showToast({
title: 'err',
icon: 'none',
duration: 3000
})
});
},
提示:突然冒出一个报错:wx.chooseMessageFile点击很多次后就突然无效了
昨天上传功能在【微信开发工具和移动端】都可以用,早上突然实现了。
查了下是官方给出的解释是:
2023年9月15日之前,此功能逻辑只对开发版/体验版生效,开发者请尽快进行隐私弹窗适配、发版。2023年9月15日之后,将对正式版生效,详情可见《关于小程序隐私保护指引设置的公告》。
具体见:
https://developers.weixin.qq.com/community/develop/doc/0002aa86b6ccb056ff20a04e96bc00?jumpto=comment文章来源:https://www.toymoban.com/news/detail-659171.html
https://developers.weixin.qq.com/community/develop/doc/00042e3ef54940ce8520e38db61801文章来源地址https://www.toymoban.com/news/detail-659171.html
到了这里,关于微信小程序中pdf的上传、下载及excel导出的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!