云开发图片上传有问题,上传的一直是同一张图片
发布于 6 年前 作者 chao53 2021 次浏览 来自 问答
  • 当前 Bug 的表现(可附上截图)
  • 预期表现
  • 复现路径
  • 提供一个最简复现 Demo

admin.js

upd_mall_pic: function() {

var that = this

wx.chooseImage({

count: 1,

sizeType: [‘compressed’],

sourceType: [‘album’, ‘camera’],

success(res) {

console.log(res)

const file_path = res.tempFilePaths[0];

app.upload_file(‘images/mall’, ‘mall_pic’, file_path);

}

})

},

app.js

upload_file: function (upload_path, file_name, file_path) {

wx.showLoading({

title: ‘上传中’

})

wx.cloud.uploadFile({

cloudPath: upload_path + ‘/’ + file_name + file_path.match(/\.[^.]+?$/)[0],

filePath: file_path,

success: res => {

wx.showToast({

icon: ‘success’,

title: ‘上传成功!’,

})

},

fail: err => {

wx.showToast({

icon: ‘none’,

title: ‘上传失败!’,

})

},

complete: () => {

wx.hideLoading()

}

})

}

这代码很正常,看不出毛病。但是上传到环境的文件存储,永远不是我选择的那一张图片。就算我把文件存储上传的图片删除,再重新上传,结果也是一样,不是我选择上传的图片。是我上上上次选择的图片,就像是没清除缓存一样。

4 回复

 确实如楼主所说,官方可以用你们提供的demo试一下呀,我也遇到同样问题了!

因为你的文件图片是一样的,下一次上传就会覆盖原来的图片

const filePath = res.tempFilePaths[0]

console.log(filePath)

const name = new Date().getTime();

// 上传图片

const cloudPath = name + filePath.match(/\.[^.]+?$/)[0]

name用随机数或者时间戳就ok了

在控制台看下文件上传是不是正确上传了呢?

回到顶部