2012-05-29 11 views
5

ho cercato di caricare un file a un server remoto di programmazione utilizzando PhoneGap in Android cellulare un (zip). Ho provato la documentazione FileAPI e la soluzione trovata here. Ma non sembra funzionare. Tuttavia, potrei caricare correttamente un'immagine (usando la fotocamera e il navigatore) come descritto negli esempi.programmazione caricare un file da scheda SD a un server remoto utilizzando PhoneGap

Ho un file test.zip in una cartella test nella scheda SD . Ho bisogno di caricare questo file su un server remoto.

Qualsiasi aiuto in merito sarebbe fantastico.

+0

È bcoz del torto URI? C'è un modo per ottenere l'URI corretto per la scheda SD? Provato con 'file: ///test/test.zip' e 'contenuto: //media/external/test/test.zip' –

+0

Il FileAPI indicato da te dice che in caso di errore. l'errore verrà segnalato in callback di errore con oggetto FileTransferError. Cosa dice quell'oggetto? –

+0

Errore "Errore nella richiamata di errore: FileTransfer3 = ReferenceError: lato sinistro non valido nell'assegnazione". Ma posso caricare con successo un'immagine, se FILEURI è stata data come "content: // media/external/images/media/963". Presumo qualcosa di sbagliato con il mio file zipURI? –

risposta

3

ho capito di lavoro, ecco il codice che ho usato

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); 

    }; 
} 
Problemi correlati