2012-05-29 60 views
5

我一直在試圖上傳一個(zip)文件到遠程服務器編程使用PhonegapAndroid移動。我已經嘗試了FileAPI文檔,並找到了解決方案here。但它似乎並不奏效。但是,我可以成功上傳圖片(使用相機和導航器​​),如示例中所述。編程上傳文件從SD卡到遠程服務器使用Phonegap

我有一個文件test.zip在文件夾testSD卡。我需要將這個文件上傳到遠程服務器。

任何有關這方面的幫助將是偉大的。

+0

難道bcoz錯誤的URI的代碼?有沒有辦法獲得SD卡的正確URI?試着用'file:///test/test.zip'和'content://media/external/test/test.zip' –

+0

你指出的FileAPI表示出現錯誤。該錯誤將在FileTransferError對象的錯誤回調中報告。那個對象說什麼? –

+0

獲取錯誤「錯誤回調錯誤:FileTransfer3 = ReferenceError:分配中無效的左側」。但是,如果將FILEURI作爲「content:// media/external/images/media/963」給出,我可以成功上傳圖像。我認爲我的zip文件URL有問題? –

回答

3

我得到它的工作,這裏是我用

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

    }; 
} 
相關問題