在微信小程序中,没有打开选取本地文件的API,经过查找开发文档,发现wx.chooseMessageFile()可以从客户端会话选择文件,并取得文件的文件名和临时路径。利用该API,编了选择本地文件上传到云存储的代码段,并把文件信息放在数据表中方便对文件的管理和下载。
/**
选择文件上传到云存储
*/
uploadfile:function(e) {
wx.chooseMessageFile({
count: 10, //可选择最大文件数 (最多100)
type: ‘all’, //文件类型,all是全部文件类型
success(res) {
const filePath = res.tempFiles[0].path //文件本地临时路径
console.log(res)
// 上传文件
const cloudPath = ‘上传文件文件夹/’ + filename //云存储路径
console.log(cloudPath)
wx.cloud.uploadFile({
cloudPath,
filePath,
success: resa => {
console.log(resa.fileID)
const db = wx.cloud.database()
//把文件名和文件在云存储的fileID存入filelist数据表中
db.collection(‘filelist’).add({
data: {
filename: filename,
fileid: resa.fileID,
},
})}, fail: e => { wx.showToast({ icon: 'none', title: '上传失败', }) }, })
}
})
},