如何使用 Swift/SwiftUI 从 ImagePicker 获取选定的图像文件名
Posted
技术标签:
【中文标题】如何使用 Swift/SwiftUI 从 ImagePicker 获取选定的图像文件名【英文标题】:How to get selected image file name from ImagePicker using Swift/SwiftUI 【发布时间】:2021-05-13 15:31:21 【问题描述】:我正在通过 UIImagePickerController 将 ImagePicker 与 SwiftUI 一起使用。它可以选择一个图像。但我也想知道原始图像文件名。有没有办法做到这一点?
我已经尝试过使用以下代码:
if let url = info[UIImagePickerController.InfoKey.imageURL] as? URL
imagePicker.fileName = url.lastPathComponent
imagePicker.fileType = url.pathExtension
但上面的代码给出了临时图像文件名。
【问题讨论】:
【参考方案1】:如果需要访问选中的UIImage
,可以使用originalImage
属性:
if let image = info[UIImagePickerController.InfoKey.originalImage] as? UIImage
...
【讨论】:
【参考方案2】:我试过了,但我无法从 UIImage 获取文件名(url)。
下面的代码暂时解决了问题。
if let url = info[UIImagePickerController.InfoKey.referenceURL] as? URL
let assets = PHAsset.fetchAssets(withALAssetURLs: [url], options: nil)
if let firstAsset = assets.firstObject,
let firstResource = PHAssetResource.assetResources(for: firstAsset).first
imagePicker.fileName = firstResource.originalFilename
else
imagePicker.fileName = "IMG_random_string"
else
imagePicker.fileName = "IMG_random_string"
但是这里的 referenceURL 和 fetchAssets 是贬值的。我尝试使用 phpickerViewController,但再次找不到如何从中获取选定的图像文件名。
谢谢! :))
【讨论】:
以上是关于如何使用 Swift/SwiftUI 从 ImagePicker 获取选定的图像文件名的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Swift 5 /SwiftUI 将 AVAudioRecorder 文件上传到 Firebase 存储?
如何在swift / SwiftUI中为滑动手势设置菜单栏图标的操作
Swift / SwiftUI:如何检查环境 /binding var 是不是为空字符串(.isEmpty 出现构建错误)