2012-05-29 21 views
5

he estado tratando de cargar un (ZIP) a un servidor remoto mediante programación utilizando Phonegap en Android móvil. He intentado con la documentación FileAPI y encontré la solución here. Pero parece que no funciona. Sin embargo, pude cargar con éxito una imagen (usando la cámara y el navegador) como se describe en los ejemplos.cargar mediante programación un archivo desde la tarjeta SD a un servidor remoto mediante Phonegap

Tengo un archivo test.zip en una carpeta test en la tarjeta SD . Necesito subir este archivo a un servidor remoto.

Cualquier ayuda con respecto a esto sería genial.

+0

Es bcoz del mal URI? ¿Hay alguna manera de obtener el URI correcto para la tarjeta SD? Intentó con 'file: ///test/test.zip' y 'content: //media/external/test/test.zip' –

+0

El archivoAPI que usted indicó en caso de error. el error se informará en la devolución de llamada de error con el objeto FileTransferError. ¿Qué dice ese objeto? –

+0

Obteniendo un error "Error en la devolución de llamada por error: FileTransfer3 = ReferenceError: Lado izquierdo no válido en la asignación". Pero puedo subir con éxito una imagen, si FILEURI aparece como "content: // media/external/images/media/963". Supongo que algo está mal con mi archivo zipURI? –

Respuesta

3

Lo tengo trabajo, aquí está el código que utilicé

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

    }; 
} 
Cuestiones relacionadas