代码如下:在开发工具上可以运行,在真机上也可以运行,但是我自定义的图片名称,在开发工具上可以实现。在真机上还是类似于时间戳,不是自己输入的名称。
干嘛不直接wx.saveImageToPhotosAlbum存相册里面?就为了重名多一次文件操作?
可能是路径问题,不同的系统上路径不一样的
有没有进行真机调试
回答部分参考、引用ChatGpt以便为您提供更准确的答案:
根据您提供的描述和代码,问题出现在真机上自定义的图片名称没有生效,而是类似于时间戳。这可能是由于以下原因导致的:
建议采取以下措施来解决问题:
请注意,由于无法查看您提供的图片内容,以上解决方法仅基于对问题描述的理解。如果您有其他详细信息或者特定的错误提示,请提供更多细节以便我们能够提供更准确的帮助。
代码写的没问题,微信会生成随机的文件名,不然你瞎搞,把用户原有的图片给覆盖了咋办?
引用chatgpt:
这可能是因为在真机上,图片的名称是根据文件路径生成的,而不是根据开发者输入的名称。你可以尝试使用相对路径来引用图片,这样可以确保在真机上也能正确显示图片名称。例如:
<img src="./images/your-image-name.jpg" alt="Your Image Description">
用wx.getFileSystemManager().saveFile来保存图片,并在保存时修改文件名。函数的第一个参数可以指定要保存的文件的路径和名称。例如:
wx.getFileSystemManager().saveFile({
tempFilePath: '要保存的图片路径',
filePath: '新文件路径和名称',
success(res) {
console.log('图片保存成功')
}
})
在上面的代码中,可以将新文件路径和名称指定为filePath参数。
这将导致在保存图片时修改文件名。
请确保在文件路径中包含正确的文件格式(例如.jpg或.png)。
如果存在相同路径的文件名将保存失败。
因为 iOS 上 yyyy-MM-dd 不是合法的日期时间格式,yyyy/MM/dd 才是。
不过不建议手动 replace 处理,可维护性很差。
建议使用 moment.js 来解析时间字符串
真机和调试的系统路径是不一样的
我咋记得这个问题,之前有人问过。发生和这个问题的原因就是因为开发工具和真机上图片路径的格式不一样。为了解决这个问题,您可以判断当前是否在开发工具中运行,如果是,则使用http://tmp/路径,否则则使用wxfile获取本地存储路径:
let filePath;
if (isDevTool) {
// 使用开发工具中的路径
filePath = 'http://tmp/example.txt';
} else {
// 使用本地存储路径
filePath = wx.env.USER_DATA_PATH + '/example.txt';
}
真机和开发调试的文件路径不一样,保存时先动态获取当前根目录的路径,然后拼接成完整的保存路径