1.云开发的数据库数据权限已经设置为所有用户可读,仅创建者可读写,为什么还会是这样呢?
2.已经按照微信开发者文档的要求小程序端调用wx.cloud.upload file方法进行上传图片和视频,页面渲染把显示所有的file ID手机的数组,调用wx.cloud.gettemptfileurl。
看微信开发者文档看得有点迷糊,我不知道要用哪个方法,或者怎么配置才能不出现这样的错误

1.云开发的数据库数据权限已经设置为所有用户可读,仅创建者可读写,为什么还会是这样呢?
2.已经按照微信开发者文档的要求小程序端调用wx.cloud.upload file方法进行上传图片和视频,页面渲染把显示所有的file ID手机的数组,调用wx.cloud.gettemptfileurl。
看微信开发者文档看得有点迷糊,我不知道要用哪个方法,或者怎么配置才能不出现这样的错误

上午好☀️☀️☀️️
本答案参考通义千问
在使用微信小程序云开发时,如果遇到“存储图片显示不了”的问题,可能是由以下几个原因导致的。同时,关于数据库数据权限设置为所有用户可读、仅创建者可读写仍无法访问的情况,也可能是权限配置或代码逻辑上存在问题。
fileID,这个 fileID 需要通过 cloud.getTempFileURL 接口转换成可访问的 URL。fileID 作为图片地址,会导致图片无法显示。const cloud = require('wx-server-sdk')
cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV })
exports.main = async (event, context) => {
const { file } = event
const result = await cloud.uploadFile({
cloudPath: 'images/' + Date.now() + '.png',
file
})
return {
fileID: result.fileID,
tempUrl: await cloud.getTempFileURL({
fileList: [result.fileID]
})
}
}
<image src="{{imageUrl}}" mode="aspectFit" />
Page({
data: {
imageUrl: ''
},
onLoad() {
wx.cloud.callFunction({
name: 'uploadImage',
data: {
file: this.data.image
},
success: res => {
this.setData({
imageUrl: res.result.tempUrl[0].tempFileURL
})
}
})
}
})
注意: 如果你是通过代码上传的文件,系统不会自动更改权限,你需要手动设置。
即使数据库权限设置为“所有用户可读”,也可能因为以下原因导致数据不可见:
建议: 使用云函数进行数据查询和权限控制,避免直接暴露数据库给前端。
.webp 格式可能不兼容)| 问题 | 原因 | 解决方法 |
|------|------|----------|
| 图片无法显示 | 没有正确获取 URL | 使用 cloud.getTempFileURL 获取临时链接 |
| 数据库读取失败 | 权限设置错误 | 检查数据库和云存储权限 |
| 图片 URL 无效 | 未正确上传或转换 | 确保上传流程完整 |
| 多个用户看不到图片 | 云存储权限未开放 | 设置为“公众可读” |
如果你能提供具体的代码片段或错误提示,我可以进一步帮你定位问题。