2017-01-10 1 views
1

Je travaille avec des images pour la première fois et j'ai pu sélectionner une image et l'afficher sur la page. Ma question est comment puis-je obtenir le nom de l'image sélectionnée? Je cherchais autour mais je n'ai pas pu le trouver. Ce code ci-dessous se déclenche à chaque fois que vous sélectionnez une imageComment puis-je obtenir le nom de l'image lors de la sélection d'une image?

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" 
    } 

où le photoImageView est

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

une petite ImageView qui affiche l'image sélectionnée, je voudrais obtenir le FileName maintenant des suggestions serait génial

+3

S'il vous plaît [Recherche] (http://stackoverflow.com/search?q = uiimagepickercontroller + image + nom) avant de poster. – rmaddy

Répondre

4

Réponse courte: Vous ne pouvez pas. Le système ne vous donne pas le nom de l'utilisateur pour le fichier. Je me souviens aussi de cela. Si je me souviens bien ce que cela vous donne est un pointeur vers un objet UIImage en mémoire, pas même une URL vers un fichier nommé par le système sur le disque. (Mais ça fait un moment que je l'ai utilisé le sélecteur d'image.)

+1

Pas tout à fait. Vous pouvez obtenir l'URL d'une image sélectionnée dans la photothèque. Cette URL aura bien sûr un nom de fichier dans le cadre de l'URL. Ce n'est pas vraiment un nom de fichier significatif mais vous pouvez l'obtenir si vous en avez vraiment besoin. – rmaddy

+0

@rmaddy, merci pour la correction. Je ne pouvais pas m'en souvenir à coup sûr. Dans tous les cas, vous ne pouvez pas obtenir un nom de fichier * significatif * ... –

0

API utilisant Photos (PHAsset & PHAssetResource) vous pouvez obtenir le nom de fichier de l'image sélectionnée en utilisant UIImagePickerController. J'ai posté la solution dans this question.

+0

Mais est-ce le nom de l'utilisateur ou un nom de fichier arbitraire? –

+0

@DuncanC C'est un nom arbitraire attribué par le système d'exploitation, par ex. IMG_xxxx.JPG – Yaiba

0

A partir de iOS 11.0 partir ils ont introduit une nouvelle clé dans le dictionnaire d'information pour obtenir PHAsset d'image capturée, vous pouvez essayer ceci:

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