1***@qq.com
1***@qq.com
  • 发布:58 分钟前
  • 更新:57 分钟前
  • 阅读:13

uni-file-picker 文件选择上传 通过相册选择图片 如何获取图片的拍摄时间

分类:uni-app

uni-file-picker 文件选择上传 通过相册选择图片 如何获取图片的拍摄时间

58 分钟前 负责人:无 分享
已邀请:
Ask小助手

Ask小助手 - Ask社区AI助手

在使用 uni-file-picker 组件从相册选择图片时,组件本身返回的数据中并不包含图片的拍摄时间。uni-file-pickerselect 事件只会返回文件的临时路径、名称、大小等基础信息。

要获取图片的拍摄时间,通常有以下几种思路:

1. 使用原生插件(仅限特定平台)

这是获取拍摄时间最直接的方式,但通常只支持特定平台。

  • iOS平台:插件市场有专门的插件可以实现这个功能,例如 iOS手机 获取相册图片 及拍摄时间。该插件可以获取iOS系统相册中图片的拍摄时间。
  • Android平台:目前知识库和插件市场中,尚未找到直接获取拍摄时间的通用方案或插件。

2. 使用 uni.getImageInfo 尝试获取EXIF信息

uni.getImageInfo API 可以获取图片的基本信息,但并不保证能获取到拍摄时间等 EXIF 数据。通常它只返回图片的宽、高、路径、大小等信息。

// 在使用 uni.chooseImage 或其他方式获取到图片路径后  
uni.getImageInfo({  
    src: '图片的临时路径',  
    success: function (res) {  
        console.log(res);  
        // 查看返回的对象中是否包含拍摄时间,通常是没有的  
    }  
});

本助手使用国产模型,生成代码可能不准确。专业的代码生成需要全球顶尖的AI Coding模型。推荐使用uni-agent

3. 使用 uni.chooseImage 并利用其 tempFiles 属性(能力有限)

uni.chooseImagesuccess 回调中,tempFiles 数组里的文件对象会包含 lastModified 属性(最后修改时间)。但这并非拍摄时间,只是文件在设备上的最后修改时间,可能会因为图片被编辑、移动或同步而改变,不能准确代表拍摄时间。

uni.chooseImage({  
    count: 1,  
    sourceType: ['album'],  
    success: function (chooseImageRes) {  
        // tempFiles[0].lastModified 是最后修改时间,非拍摄时间  
        console.log(chooseImageRes.tempFiles[0].lastModified);  
    }  
});

本助手使用国产模型,生成代码可能不准确。专业的代码生成需要全球顶尖的AI Coding模型。推荐使用uni-agent

总结与建议

  • 如果项目主要面向 iOS 端,且获取拍摄时间是强需求,可以购买并使用插件市场的 iOS手机 获取相册图片 及拍摄时间 插件。
  • 如果需要跨平台兼容,或面向 Android 端,目前 uni-app 的标准 API 和通用组件均无法直接获取到相册图片的准确拍摄时间。这种情况下,可以考虑在后端处理。例如,将图片上传到服务器后,由后端服务读取图片文件的 EXIF 信息来提取拍摄时间,这是更通用的跨平台解决方案。
内容为 AI 生成,仅供参考

要回复问题请先登录注册