2017-01-10 2 views
0

hochladen Ich arbeite auf schnelle 3.0 Uisng Backendless. Ich bin neu in diesem Konzept. Ich lade Bilder hoch, die ich aus der Telefongalerie mit UIImagePickerController auswähle. Auf der Rückseite benutze ich Rest Api. Ich uplaoding das Bild mit dem folgenden Code ..Wie Bild mit Backendless in Swift 3.0

public func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) 
    { 
     let image = info[UIImagePickerControllerOriginalImage] as? UIImage 
     self.uploadButton.isHidden = true 
     myImageView.contentMode = .scaleAspectFit 
     myImageView.image = image 


     let imageUrl   = info[UIImagePickerControllerReferenceURL] as! NSURL 
     let imageName   = imageUrl.lastPathComponent 
     let documentDirectory = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true).first! 
     let photoURL   = NSURL(fileURLWithPath: documentDirectory) 
     let localPath   = photoURL.appendingPathComponent(imageName!) 

     print(localPath!) 


     let imageurl = info[UIImagePickerControllerReferenceURL] as? NSURL 
     let imagename = imageurl?.lastPathComponent 
     print(imagename!) 

     //https://api.backendless.com/<application id>/<version name>/files/<path>/<file name> 

     Alamofire.request(“https://api.backendless.com/66B90F83-A813-84CF-FF9D-4A01AC28E100/v1/files/ + "\(localPath!)/\(imagename!)", method: .post, parameters: nil, encoding: JSONEncoding.default, headers: HeadersClass.allHeaders.headers).responseJSON { response in 
      debugPrint(response) 
     } 

     imagePicker.dismiss(animated: true, completion: nil) 

    } 

Aber ich bin immer der „Status-Code-Fehler = 400“.

Kann mir bitte jemand sagen, was für einen Fehler ich hier gemacht habe. Vielen Dank im Voraus.

+0

Warum verwenden Sie nicht ihre Bibliotheken? https://backendless.com/documentation/files/ios/files_file_upload.htm –

+0

Ich benutze das Api nur für das nur ich bekomme 400 Statuscode Fehler –

+0

Nein, Sie versuchen, das über Alamofire durch Anfordern von Adresse, die nicht sendet existiert, wie muss der Backendless-Server über den lokalen Dateipfad wissen? Verwenden Sie, was sie getan haben, um Datei hochzuladen, haben Sie Abschnitt für das –

Antwort

0

Sie sind vom ersten Schritt völlig falsch. Die von Ihnen erstellte Anforderungs-URL ist die Rücksende-URL, die der Back-End-Service Ihnen zurückgibt, wenn Sie Ihre Datei erfolgreich hochgeladen haben.

in Bezug auf backendless Service, https://backendless.com/documentation/files/ios/files_file_upload.htm, müssen Sie die Funktionen implementieren, die hier unten aufgeführt:

// Upload data block identified as 'content' to the specified path. 
// If the server returns an error, it is delivered through 
// the 'responder' object 
func upload(_ path: String, 
      content content: NSData, 
      responder responder: IResponder!) -> Void 

// Upload data block identified as 'content' to the specified path. 
// If the file already exists on the server, overwrite if the 
// 'overwrite' argument is set to YES/TRUE. 
// If the server returns an error, it is delivered through 
// the 'responder' object 
func upload(_ path: String, 
      content content: NSData, 
      overwrite overwrite: Bool, 
      responder responder: IResponder!) -> Void 

// Upload data block identified as 'content' to the specified path. 
// If the server returns an error, it is delivered through 
// the 'error' block-based callback 
func upload(_ path: String, 
      content content: NSData, 
      response responseBlock: ((BackendlessFile!) -> Void)!, 
      error errorBlock: ((Fault!) -> Void)!) -> Void 

// Upload data block identified as 'content' to the specified path. 
// If the file already exists on the server, overwrite if the 
// 'overwrite' argument is set to YES/TRUE. 
// If the server returns an error, it is delivered through 
// the 'error' block-based callback 
func upload(_ path: String, 
      content content: NSData, 
      overwrite overwrite: Bool, 
      response responseBlock: ((BackendlessFile!) -> Void)!, 
      error errorBlock: ((Fault!) -> Void)!) -> Void 

Weitere Einzelheiten, Sie in ihrem Dokument lesen kann.

+0

Ich habe die "Upload-Funktion" verwendet, aber wie kann ich das Bild sehen, das ich gesendet habe? –