webentwicklung-frage-antwort-db.com.de

Wie erhält man den Bilddateinamen von UIImagePickerController?

Ich erhalte den Bildnamen nicht aus der Fotobibliothek. Kennt hier jemand einen richtigen Weg, um Bildnamen zu bekommen?

Hinweis: PHAsset.fetchAssets(withALAssetURLs: [imageURL], options: nil) Dies ist veraltet.

Nur schnell

Vielen Dank

3
Akshay Sood

Ich habe einen Weg gefunden

if let asset = info["UIImagePickerControllerPHAsset"] as? PHAsset{
            if let fileName = asset.value(forKey: "filename") as? String{
            print(fileName)
            }
        }

Dadurch erhalten Sie den tatsächlichen Dateinamen in der Fotobibliothek.

6
Akshay Sood

Meinen Sie den Namen der Bilddatei? Wenn ja, sollte dies Ihnen helfen. In Ihrem UIImagePickerControllerDelegate:

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
    guard let fileUrl = info[UIImagePickerControllerImageURL] as? URL else { return }
    print(fileUrl.lastPathComponent)
}
4
Terje

Versuchen Sie es mit dem folgenden Code

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

    // Other Stuff
}
3

Probieren Sie mal das hier an.

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
    if let asset = info[UIImagePickerControllerPHAsset] as? PHAsset {
        let assetResources = PHAssetResource.assetResources(for: asset)
        print(assetResources.first!.originalFilename)
    }

    dismiss(animated: true, completion: nil)
} 
0
AMP

UIImagePickerControllerPHAsset ist nil, wenn Sie keine Zugriffsberechtigung für die Fotobibliothek haben. Das Betriebssystem fragt nicht automatisch und gibt Ihnen trotzdem Zugriff auf die Datei (ich habe keine Ahnung, was die Logik dahinter steckt!), Aber das PHAsset ist das Info-Wörterbuch wird gleich Null sein!

0
AXE