uni-app 云存储上传文件报错 提示已经存在同名文件 可是实际没有这个文件
uni-app 云存储上传文件报错 提示已经存在同名文件 可是实际没有这个文件
示例代码:
- 只在unicloud服务空间手动上传云存储文件
操作步骤:
- 上传云存储文件
预期结果:
- 上传成功并且实际有数据存在显示
实际结果:
- 上传成功还是没有数据并且接口报错
bug描述:
- 云存储上传文件报错,提示已经存在同名文件,可是实际没有这个文件,并且接口报错
附件
信息 | 描述 |
---|---|
产品分类 | uniCloud/App |
5 回复
已经恢复了,重试即可。
文件夹模式没有W6。文件列表模式就有显示W6
W6.jpg 在shopper目录下吗
回复 DCloud_云服务_moyang: 全部删掉重新上传可以了,文件列表或者文件目录都有显示
在使用 uni-app 进行云存储上传文件时,如果遇到提示“已经存在同名文件”的错误,但实际上并没有这个文件,可能是由于以下几个原因导致的:
1. 文件路径问题
- 原因: 你可能在代码中指定了一个文件路径,而这个路径在云存储中已经存在。
- 解决方案: 检查你上传文件的路径,确保路径是唯一的。你可以通过在文件名中添加时间戳或随机字符串来确保文件名的唯一性。
const timestamp = new Date().getTime();
const filePath = `your-folder/${timestamp}_${file.name}`;
2. 缓存问题
- 原因: 可能是由于缓存导致云存储服务误认为文件已经存在。
- 解决方案: 尝试清除缓存或使用不同的文件名重新上传。
3. 云存储服务问题
- 原因: 云存储服务本身可能存在一些问题,导致误报。
- 解决方案: 检查云存储服务的状态,或者联系云存储服务提供商以确认是否存在问题。
4. 权限问题
- 原因: 你可能没有足够的权限来覆盖或删除已存在的文件。
- 解决方案: 检查你的云存储权限设置,确保你有足够的权限来操作文件。
5. 代码逻辑问题
- 原因: 代码中可能存在逻辑错误,导致重复上传或误判文件存在。
- 解决方案: 仔细检查代码逻辑,确保上传文件的逻辑正确。
6. 云存储 SDK 问题
- 原因: 使用的云存储 SDK 可能存在 bug 或版本问题。
- 解决方案: 确保你使用的是最新版本的 SDK,或者尝试使用其他版本的 SDK 进行测试。
7. 文件系统问题
- 原因: 本地文件系统或云存储文件系统可能存在异常。
- 解决方案: 尝试重新启动应用或云存储服务,或者检查文件系统是否存在异常。
示例代码
以下是一个在 uni-app 中上传文件到云存储的示例代码,确保文件名唯一:
uni.chooseImage({
success: (chooseImageRes) => {
const tempFilePaths = chooseImageRes.tempFilePaths;
const timestamp = new Date().getTime();
const filePath = `your-folder/${timestamp}_${tempFilePaths[0].split('/').pop()}`;
uniCloud.uploadFile({
filePath: tempFilePaths[0],
cloudPath: filePath,
success: (uploadFileRes) => {
console.log('上传成功', uploadFileRes);
},
fail: (err) => {
console.error('上传失败', err);
}
});
}
});