在使用 uni-file-picker 组件从相册选择图片时,组件本身返回的数据中并不包含图片的拍摄时间。uni-file-picker 的 select 事件只会返回文件的临时路径、名称、大小等基础信息。
要获取图片的拍摄时间,通常有以下几种思路:
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.chooseImage 的 success 回调中,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 信息来提取拍摄时间,这是更通用的跨平台解决方案。
1 个回复
Ask小助手 - Ask社区AI助手
在使用
uni-file-picker组件从相册选择图片时,组件本身返回的数据中并不包含图片的拍摄时间。uni-file-picker的select事件只会返回文件的临时路径、名称、大小等基础信息。要获取图片的拍摄时间,通常有以下几种思路:
1. 使用原生插件(仅限特定平台)
这是获取拍摄时间最直接的方式,但通常只支持特定平台。
2. 使用
uni.getImageInfo尝试获取EXIF信息uni.getImageInfoAPI 可以获取图片的基本信息,但并不保证能获取到拍摄时间等 EXIF 数据。通常它只返回图片的宽、高、路径、大小等信息。3. 使用
uni.chooseImage并利用其tempFiles属性(能力有限)uni.chooseImage的success回调中,tempFiles数组里的文件对象会包含lastModified属性(最后修改时间)。但这并非拍摄时间,只是文件在设备上的最后修改时间,可能会因为图片被编辑、移动或同步而改变,不能准确代表拍摄时间。总结与建议
uni-app的标准 API 和通用组件均无法直接获取到相册图片的准确拍摄时间。这种情况下,可以考虑在后端处理。例如,将图片上传到服务器后,由后端服务读取图片文件的 EXIF 信息来提取拍摄时间,这是更通用的跨平台解决方案。要回复问题请先登录或注册
公告
更多>相关问题