我正在 iOS 上开发应用程序。我正在为我的应用程序使用 Phonegap 和 jQuery Mobile。目前,当用户单击图像或使用 Phonegap 从图库中选择图像并在本地保存 URI 时,我正在检索图像的 URI。我需要通过将这些图像转换为 Base64 字符串来在服务器上提交这些图像。为了将它们转换为 Base64,我使用了 Phonegap 提供的示例。
<!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”,而是在模拟器上进行测试的本地图像 URI fileSystem.root.getFile("image.png", null, gotFileEntry, fail);
。但是我收到以下错误:
错误回调中的错误:File2 = TypeError:'undefined' is not an object。
我也尝试了图像的绝对路径,但得到了同样的错误。我不明白会出什么问题?我错过了什么吗?我需要尽快解决这个问题。
非常感谢任何帮助。
谢谢。