在 iOS 上使用 Phonegap 将图像转换为 Base64 字符串
Posted
技术标签:
【中文标题】在 iOS 上使用 Phonegap 将图像转换为 Base64 字符串【英文标题】:Convert an image to a Base64 string on iOS using Phonegap 【发布时间】:2012-07-26 07:49:06 【问题描述】:我正在 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>
在示例中,我传递的是本地图像 URI,而不是“readme.txt”,以便在模拟器 fileSystem.root.getFile("image.png", null, gotFileEntry, fail);
上进行测试。但是我收到以下错误:
错误回调中的错误:File2 = TypeError:'undefined' is not an object。
我也尝试了图像的绝对路径,但得到了同样的错误。我不明白会出什么问题?我错过了什么吗?我需要尽快解决这个问题。
非常感谢任何帮助。
谢谢。
【问题讨论】:
【参考方案1】:我认为你的文件必须首先创建,如果你确定是这种情况,你可以通过指定 getFile 方法的第二个参数来访问它,如下所示:
fileSystem.root.getFile("image.png", 'create' : false, gotFileEntry, fail);
'create': false 将告诉 phonegap 不创建文件,这是我认为的默认情况。
【讨论】:
以上是关于在 iOS 上使用 Phonegap 将图像转换为 Base64 字符串的主要内容,如果未能解决你的问题,请参考以下文章
Phonegap 无法将 HTML5 移动应用程序转换为 IOS
通过 PhoneGap 将 html javascript 转换为 iOS 应用程序
将 Ruby on Rails 应用程序转换为 Phonegap iOS 应用程序的步骤是啥?