2012-05-29 4 views
5
mit Phonegap laden

Ich habe versucht, ein (zip) zu einem Remote-Server programmatisch Phonegap in Android Handys mit Datei hochladen. Ich habe versucht, die FileAPI Dokumentation und die gefundene Lösung here. Aber es scheint nicht zu funktionieren. Allerdings konnte ich ein Bild (mit Kamera und Navigator) wie in den Beispielen beschrieben hochladen.Programmatically eine Datei von SD-Karte auf einen Remote-Server

Ich habe eine Datei test.zip in einem Ordner test in der SD-Karte. Ich muss diese Datei auf einen Remote-Server hochladen.

Jede Hilfe in diesem Zusammenhang wäre großartig.

+0

verwendet Ist es bcoz der falschen URI? Gibt es eine Möglichkeit, den richtigen URI für die SD-Karte zu erhalten? Versucht mit 'file: ///test/test.zip' und 'content: //media/external/test/test.zip' –

+0

Die von Ihnen angegebene FileAPI sagt, dass im Falle eines Fehlers. Der Fehler wird im Fehlerrückruf mit dem FileTransferError-Objekt gemeldet. Was sagt dieses Objekt? –

+0

Fehler erhalten "Fehler beim Fehlerrückruf: FileTransfer3 = ReferenceError: Ungültige linke Seite in Zuweisung". Aber ich kann erfolgreich ein Bild hochladen, wenn FILEURI als "content: // media/external/images/media/963" angegeben wird. Ich vermute etwas falsch mit meiner zip fileURI? –

Antwort

3

Ich habe es funktioniert, hier ist der Code, den ich

uploadFile('test.zip', 'Test', 'multipart/x-zip'); 

function uploadFile(fileName, dirName, fileMime) { 

    var win = function(r) { 
     console.log("Code = " + r.responseCode); 
     console.log("Response = " + r.response); 
     console.log("Sent = " + r.bytesSent); 
     alert(r.response); 
    }; 

    var fail = function(error) { 
     alert("An error has occurred: Code = " = error.code); 
    }; 

    var fileURI; 

    var gotFileSystem = function(fileSystem) { 
     fileSystem.root.getDirectory(dirName, { 
      create : false 
     }, function(dataDir) { 

      fileURI = dataDir.fullPath; 
      fileURI = fileURI + '/' + fileName; 

      alert(fileURI); 

      var options = new FileUploadOptions(); 
      options.fileKey = "file"; 
      options.fileName = fileURI.substr(fileURI.lastIndexOf('/') + 1); 
      options.mimeType = fileMime; 

      var params = new Object(); 
      params.value1 = "test"; 
      params.value2 = "param"; 

      options.params = params; 

      var ft = new FileTransfer(); 
      ft.upload(fileURI, 

        // Enter the server url 
        "http://example.com/upload.php", win, 
        fail, options); 

     }, dirFail); 

    }; 

    // file system fail 
    var fsFail = function(error) { 
     alert("failed with error code: " + error.code); 

    }; 

    // get file system to copy or move image file to 
    window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFileSystem, 
      fsFail); 

    var dirFail = function(error) { 
     alert("Directory error code: " + error.code); 

    }; 
} 
Verwandte Themen