我正在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.
我也試過了圖像的絕對路徑,但得到了同樣的錯誤。我不明白會出現什麼問題?我錯過了什麼?我需要儘快解決這個問題。
任何幫助,高度讚賞。
謝謝。