Ich Umwandeln des Bildes I aus der Galerie in seine URL bin Kommissionierung wie so ...Problem mit URL des Bildes in der Galerie bekommen
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
if let image = info[UIImagePickerControllerOriginalImage] as? UIImage {
UIImageWriteToSavedPhotosAlbum(image, self, #selector(image(_:didFinishSavingWithError:contextInfo:)), nil)
let imageURL = info[UIImagePickerControllerReferenceURL] as? NSURL
let imageName = imageURL?.lastPathComponent
let documentDirectory = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true).first!
let photoURL = NSURL(fileURLWithPath: documentDirectory)
self.localPath = photoURL.appendingPathComponent(imageName!)
do {
try UIImageJPEGRepresentation(image, 1.0)?.write(to: localPath!)
print("File Saved")
imageArray.append(image)
} catch { //Error }
self.collectionView.reloadData()
} else { //Error here }
self.dismiss(animated: true, completion: nil)
}
Nun, wenn ich 2 Bilder haben, möchte ich weitergeben sie einzeln zu meinem API-Aufruf als Parameter. Das bin ich wie so tun ...
for imgURL in imageArray {
let url = "http://myapp.com/vw/images_upload"
let headers = [ "Content-Type":"application/x-www-form-urlencoded"]
let Parameters =
[
"image": imgURL,
"seller_id": id
] as [String : Any]
Alamofire.request(url, method: .post, parameters: Parameters, encoding: URLEncoding.httpBody, headers: headers)
.responseJSON { (response) in
if let httpResponse = response.response {
print("error \(httpResponse.statusCode)")
if httpResponse.statusCode == 200 {
if let result = response.result.value as? [String:Any] {
if result["success"] as! Int == 0 {
print("Something went wrong!")
} else if result["success"] as! Int == 1 {
print("UPLOADED IMAGE SUCCESSFULLY!!")
}}}}}}
Aber in dem Parameter, in imgURL
, ich bin nicht immer die URL des Bildes. Oben hatte ich die URL in der localPath
. Aber ich kann localPath
nicht durchlaufen, da es einen Fehler gibt. Auch in der imageArray
übergebe ich das Bild, das nicht im URL-Format ist ... es ist in diesem Format: <UIImage: 0x60800009f9f0> size {4288, 2848} orientation 0 scale 1.000000...
Wie das URL-Format in die imageArray
übergeben werden kann, die ich nicht verstehen kann Das ist das Problem ..?
Auch wie bekomme ich die URL des Bildes, so dass ich es in den API-Aufruf übergeben kann ...? Bitte helfen Sie ...
'lassen image = info [UIImagePickerControllerOriginalImage] wie? UIImage "gibt dir ein' UIImage' zurück. Dieses Bild wird dann in Ihrem 'imageArray' von' imageArray.append (image) 'gespeichert. Wenn Sie die URLs der Bilder in Ihrem Array speichern möchten, sollten Sie stattdessen imageArray.append (imageURL) verwenden. –
imageArray ist ein Array von UIImage, so dass es den Fehler 'Wert des Typs' NSURL 'in den erwarteten Argumenttyp' UIImage 'konvertieren kann. – bws
Wenn Ihr 'imageArray' der Typ von' [UIImage] 'ist, wie können Sie jedes Element erwarten als URL? Sie müssen ein separates Array für Ihre URLs erstellen, abhängig vom Bild. Und müssen Sie das Bild nicht zuerst auf den Remote-Server hochladen und dann die URL von dort abrufen -> speichern Sie diese URL auf andere Anfrage. – Aks