2017-01-04 2 views
0

Ich erhalte den Fehler "Code 3" (Verbindung abgelehnt), wenn ich eine Image-Datei von meiner ionischen App auf den Remote-Server mit dem FileTransfer-Plugin hochlade.Ionic: Erhalte Fehlercode 3 beim Hochladen von Bildern mit ng-cordova fileTransfer und Kamera-Plugin

verwenden ich die Kamera Plugin und bewegt hat das erfasste Bild in dem permanenten Speicher

$scope.selectPicture = function(sourceType) { 
    var options = { 
     quality: 75, 
     destinationType: Camera.DestinationType.FILE_URI, 
     sourceType: Camera.PictureSourceType.CAMERA, 
     allowEdit: true, 
     encodingType: Camera.EncodingType.JPEG, 
     popoverOptions: CameraPopoverOptions, 
     saveToPhotoAlbum: false, 
     correctOrientation:true 
    }; 

    $cordovaCamera.getPicture(options).then(function(imagePath) { 
     var currentName = imagePath.replace(/^.*[\\\/]/, ''); 
     //Create a new name for the photo 
     var d = new Date(), 
     n = d.getTime(), 
     newFileName = n + ".jpg"; 

     localStorage.setItem('checklist',newFileName); 
     var namePath = imagePath.substr(0, imagePath.lastIndexOf('/') + 1); 
      // Move the file to permanent storage 
      $cordovaFile.moveFile(namePath, currentName, cordova.file.dataDirectory, newFileName).then(function(success){ 
      $scope.image = newFileName; 
      localStorage.setItem('checklist',newFileName); 
      }, function(error){ 
      $scope.showAlert('Error', error.exception); 

      }); 
    }, function(err) { 
     // error 
    }); 
}; 

dann lade ich das Bild, um die Filetransfer-Plugin

$scope.reportSending = function(){ 
    $scope.report_no = localStorage.getItem('reportNumber'); 
    $scope.imageLoc = localStorage.getItem('checklist'); 

    var server = "http://localhost/api/api/public/api/sendreport", 

    filePath = cordova.file.dataDirectory + $scope.imageLoc; 

    var date = new Date(); 

    var options = { 
     fileKey: "file", 
     fileName: $scope.imageLoc, 
     chunkedMode: false, 
     mimeType: "multipart/form-data", 
     params : { 
      report_no : $scope.report_no 
     } 
    }; 

    $cordovaFileTransfer.upload(server, filePath, options).then(function(result) { 
     console.log(JSON.stringify(result.response)); 

    }, function(err) { 
     console.log("ERROR: " + JSON.stringify(err)); 
     //alert(JSON.stringify(err)); 
    }, function (progress) { 
     // constant progress updates 
    }); 

}; 

verwenden, wenn ich die reportSending() Funktion kehrt eine Ausführungs Fehler sagt:

ERROR: {"code":3,"source":"file:///data/user/0/com.ionicframework.appnew343084/files/1483519701226.jpg","target":"http://localhost/api/api/public/api/sendreport","http_status":null,"body":null,"exception":"Connection refused"} 

es heißt "connectio "Nein" in der Ausnahme abgelehnt, aber wenn ich die API im Postboten versuche, kann ich erfolgreich eine Datei hochladen.

Antwort

0

So nach Tonnen Foren Suche fand ich heraus, dass mein Problem war sehr einfach ..

die API-URL ändert das Problem behoben.

von

var server = "http://localhost/api/api/public/api/sendreport", 

zu

var server = "http://192.168.1.17/api/api/public/api/sendreport"; 

anstelle von localhost wies ich die URL zu meinem lokalen Server des IP- und ich habe auch bemerkt, dass ich Komma verwendet , statt Semikolon bei der Ende meiner Variablendeklaration für die API.

jetzt funktioniert alles wie es soll.

Verwandte Themen