云开发上传的图片在真机测试时显示找不到是怎么回事?
发布于 7 年前 作者 guiyingli 881 次浏览 来自 官方Issues

关于微信小程序云开发我也是接触不久,所以可能会有一些低级错误,望谅解。我现在打算做一个能上传图片的发帖功能,然后看帖子的时候要能看到每个帖子可能附带的图片,按照网上教程上传图片到云开发的存储中(使用wx.cloud.uploadFile),将返回的路径结果push进数据库集合对应帖子的字段imagelist空集,例如‘imagelist’:[http://tmp/wxfc465a6849644c1f.o6zAJs48V7US_nMxWevh374HXQ4g.FCL7C7Tft3fM51f32aa9df243ceb64dc243c3d7a8803.jpg],这个网络地址我是先在选图片的wx.chooseImage中将data中的imagesList: res.tempFilePaths,还有data中的fP:res.tempFilePaths[0],然后在点击提交时,进行插入下面代码块的操作,这是我在网上看的图片上传的教程,接下来就是将imagelist用 云开发的add方法添加到数据库里,在数据库里imagelist就是上面那样,使用我也是从数据库读出来,使用wx:for遍历字段的imagelist属性,然后直接通过image标签显示。在开发者工具能顺利显示每个帖子附带的图片,可在使用开发者工具上的真机检测功能进行手机端检测时(我用的是华为荣耀8X),图片却没有显示,有报错显示找不到,GET http://tmp/wxfc465a6849644c1f.o6zAJs48V7US_nMxWevh374HXQ4g.FCL7C7Tft3fM51f32aa9df243ceb64dc243c(还有一段)… 404 not Found,可在开发工具是可以显示的,没有报错,不知道怎么回事,望前辈们替我解惑。

  let imagelist = this.data.imagesList;
    let filePath = this.data.fP;
    let timestamp = Date.parse(new Date());
    const cloudPath = timestamp + filePath.match(/\.[^.]+?$/)[0];
    wx.cloud.uploadFile({
      cloudPath,
      filePath,
      success: res => {
​
          imagelist = imagelist.concat(res.fileID)
        
        this.is_all_ok()
      },
      fail: err => {
        console.log(err)
      }
1 回复

加我微信:jishuzu360,远程教你怎么弄吧

回到顶部