2012-07-26 365 views
2

我正在iOS上開發應用程序。我爲我的應用程序使用Phonegap和jQuery Mobile。目前,當用戶單擊圖像或使用Phonegap從圖庫中選擇圖像並在本地保存URI時,我正在檢索圖像的URI。我需要通過在Base64字符串中轉換它們來在服務器上提交這些圖像。爲了將它們轉換成Base64,我使用Phonegap提供的示例。使用Phonegap將圖像轉換爲iOS上的Base64字符串

<!DOCTYPE html> 
<html> 
    <head> 
    <title>FileReader Example</title> 
    <script type="text/javascript" charset="utf-8" src="cordova-1.7.0.js"></script> 
    <script type="text/javascript" charset="utf-8"> 
    // Wait for Cordova to load 
    // 
    function onLoad() { 
     document.addEventListener("deviceready", onDeviceReady, false); 
    } 
    // Cordova is ready 
    // 
    function onDeviceReady() { 
     window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, fail); 
    } 
    function gotFS(fileSystem) { 
     fileSystem.root.getFile("readme.txt", null, gotFileEntry, fail); 
    } 
    function gotFileEntry(fileEntry) { 
     fileEntry.file(gotFile, fail); 
    } 
    function gotFile(file){ 
     readDataUrl(file); 
     readAsText(file); 
    } 
    function readDataUrl(file) { 
     var reader = new FileReader(); 
     reader.onloadend = function(evt) { 
      console.log("Read as data URL"); 
      console.log(evt.target.result); 
     }; 
     reader.readAsDataURL(file); 
    } 
    function readAsText(file) { 
     var reader = new FileReader(); 
     reader.onloadend = function(evt) { 
      console.log("Read as text"); 
      console.log(evt.target.result); 
     }; 
     reader.readAsText(file); 
    } 
    function fail(evt) { 
     console.log(evt.target.error.code); 
    } 
    </script> 
    </head> 
    <body> 
    <h1>Example</h1> 
    <p>Read File</p> 
    </body> 
</html> 

在該示例中,代替「README.TXT」我在模擬器fileSystem.root.getFile("image.png", null, gotFileEntry, fail);傳遞一個本地圖像URI進行測試。不過,我得到以下錯誤:

Error in error callback : File2 = TypeError:'undefined' is not an object.

我也試過了圖像的絕對路徑,但得到了同樣的錯誤。我不明白會出現什麼問題?我錯過了什麼?我需要儘快解決這個問題。

任何幫助,高度讚賞。

謝謝。

回答

0

我認爲你的文件必須先創建,如果你確定是這樣的話,你可以通過指定這樣的GetFile梅索德的第二個參數訪問它:

fileSystem.root.getFile("image.png", {'create' : false}, gotFileEntry, fail); 

的{'create':false}會告訴phonegap不創建文件,這是我認爲的默認情況。

相關問題