如何在选择图片时获取图片名称

问题描述 投票:0回答:4

我是第一次使用图像,我已经能够选择图像并将其显示在页面上。我的问题是如何获得所选图像的名称?我一直在四处寻找,但没能找到它。每次您选择图像时,下面的代码都会触发

 func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any])
    {

        photoImageView.image = info[UIImagePickerControllerOriginalImage] as? UIImage
        self.dismiss(animated: false, completion: nil)
        let FileName = " Image Name of selected file"
    }

photoImageView 在哪里

var photoImageView = UIImageView(frame: CGRect(x: 82,y: 300,width: 100,height: 100))

一个显示所选图像的小 ImageView,我现在想获取 FileName 任何建议都很好

ios swift swift3 uiimagepickercontroller
4个回答
4
投票

简短的回答:你不能。系统不会为您提供文件的用户名。我记得也对此感到困惑。

我记得它给你的是一个指向内存中 UIImage 对象的指针,甚至不是指向磁盘上系统命名文件的 URL。 (但我已经有一段时间没有使用图像选择器了。)


0
投票

使用

Photos
API(
PHAsset
&
PHAssetResource
)你可以得到使用
UIImagePickerController
选择的图像的文件名。我在这个问题中发布了解决方案。


0
投票

从 iOS 11.0 开始,他们在信息字典中引入了一个新的键来获取所选图像的 PHAsset,你可以试试这个:

func imagePickerController(_ picker: UIImagePickerController,didFinishPickingMediaWithInfo info: [String : Any]) {
if let photoAsset = info[UIImagePickerControllerPHAsset] as? PHAsset {
  if let fileName = photoAsset.value(forKey: "filename") ?? "nonamefound"}

0
投票

您可以在委托函数中使用此代码来从选择器中获取图像名称。

func imagePickerController(_ picker: UIImagePickerController, 
didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : 
Any]) {
   
        picker.dismiss(animated: true, completion: nil)
    
        if let imgUrl = info[.imageURL] as? URL {
            let fileName = imgUrl.lastPathComponent
            print(fileName)
        }
    }
© www.soinside.com 2019 - 2024. All rights reserved.