在开发工具上可以运行,在真机上还是类似于时间戳,不是自己输入的名称。

代码如下:在开发工具上可以运行,在真机上也可以运行,但是我自定义的图片名称,在开发工具上可以实现。在真机上还是类似于时间戳,不是自己输入的名称。

img

干嘛不直接wx.saveImageToPhotosAlbum存相册里面?就为了重名多一次文件操作?

img

可能是路径问题,不同的系统上路径不一样的

有没有进行真机调试

回答部分参考、引用ChatGpt以便为您提供更准确的答案:

根据您提供的描述和代码,问题出现在真机上自定义的图片名称没有生效,而是类似于时间戳。这可能是由于以下原因导致的:

  1. 权限问题:请确保您在真机上运行应用程序时具有足够的权限来创建和保存文件。有时候,权限限制可能会导致无法以自定义的方式命名文件。
  2. 文件路径问题:请检查您在代码中指定的保存图片的路径。在真机上,可能存在路径相关的差异,导致文件保存到了不同的位置或者使用了不同的命名规则。
  3. 操作系统差异:不同的操作系统对于文件命名的规则和限制可能会有所不同。请确保您在真机上使用的操作系统支持您自定义的文件命名方式。

建议采取以下措施来解决问题:

  1. 检查权限:确保您在真机上运行应用程序时具有足够的权限来创建和保存文件。您可以尝试在代码中指定一个具有较高权限的目录作为保存路径,例如使用用户主目录或者外部存储。
  2. 调整文件路径:检查代码中指定的文件路径是否与真机上的实际路径相匹配。您可以尝试使用相对路径或者绝对路径来保存文件,确保路径的正确性。
  3. 考虑操作系统差异:如果您的应用程序在不同的操作系统上运行,需要确保代码可以适应不同的操作系统的文件命名规则。可以尝试使用操作系统提供的特定方法或库来生成自定义的文件名。

请注意,由于无法查看您提供的图片内容,以上解决方法仅基于对问题描述的理解。如果您有其他详细信息或者特定的错误提示,请提供更多细节以便我们能够提供更准确的帮助。

代码写的没问题,微信会生成随机的文件名,不然你瞎搞,把用户原有的图片给覆盖了咋办?

引用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';
}

真机和开发调试的文件路径不一样,保存时先动态获取当前根目录的路径,然后拼接成完整的保存路径