无法从phonegap中的SD卡读取图像文件:android

我是一个电话新手。 我正在尝试从android中使用phonegap官方教程从SD卡读取和图像文件。 问题是图像没有被显示,而是在它的位置出现了一个问号。

我的代码:

var pictureSource; var destinationType; document.addEventListener("deviceready",onDeviceReady,false); function onDeviceReady(){ document.getElementById("test").innerHTML="onready about to request"; window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, onFail);} function onFail(message) { alert('Failed because: ' + message); } function gotFS(fileSystem) { fileSystem.root.getFile("1.jpg", null, gotFileEntry, fail); } function gotFileEntry(fileEntry) { fileEntry.file(gotFile, fail); } function gotFile(file){ readDataUrl(file); } function readDataUrl(file) { var reader = new FileReader(); reader.onloadend = function(evt) { console.log("Read as data URL"); console.log(evt.target.result); }; document.getElementById("smallImage").style.display='block'; document.getElementById("smallImage").src = reader.readAsDataURL(file); } function fail(evt) { console.log(evt.target.error.code); } </script> 

编辑:使用API​​ 16和min-sdk8“smallImage”是一个标签,它与onphotodatasuccess正常工作。 所以,相机在这里不是问题。 与相机function相关的一切都可以。 从SD卡读取是在赋值语句构成一个问题。
document.getElementById(“smallImage”)。src = reader.readAsDataURL(file); 如果我添加这个我得到的string和未知的铬错误-6,否则我看到通常的图像转换string。 谢谢

Solutions Collecting From Web of "无法从phonegap中的SD卡读取图像文件:android"

这是一个工作的例子:

编辑:

 <!DOCTYPE html> <html> <head> <title>Pick Photo</title> <script type="text/javascript" charset="utf-8" src="cordova-2.2.0.js"></script> <script type="text/javascript" charset="utf-8"> document.addEventListener("deviceready",onDeviceReady,false); function onDeviceReady() { window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, onFail); } function onFail(message) { alert('Failed because: ' + message); } function gotFS(fileSystem) { fileSystem.root.getFile("1.jpg", {create: true}, gotFileEntry, fail); } function gotFileEntry(fileEntry) { fileEntry.file(gotFile, fail); } function gotFile(file){ readDataUrl(file); } function readDataUrl(file) { var reader = new FileReader(); reader.onloadend = function(evt) { console.log("Read as data URL"); console.log(evt.target.result); document.getElementById("smallImage").style.display='block'; document.getElementById("smallImage").src = evt.target.result; }; reader.readAsDataURL(file); } function fail(evt) { console.log(evt.target.error.code); } </script> </head> <body> <img style="display:none;width:60px;height:60px;" id="smallImage" src="" /> <img style="display:none;" id="largeImage" src="" /> </body> </html> 

这将允许你从SD卡中select任何指定的图像。

希望这可以帮助你。

谢谢。

尝试这个:

 <script> document.addEventListener("deviceready",onDeviceReady,false); function onDeviceReady(){ //This file have to exist var location= "file:///storage/emulated/0/DCIM/Camera/20141105_124208.jpg"; window.resolveLocalFileSystemURL(location, function(oFile) { oFile.file(function(readyFile) { var reader= new FileReader(); reader.onloadend= function(evt) { document.getElementById("smallImage").style.display='block'; document.getElementById("smallImage").src = evt.target.result; }; reader.readAsDataURL(readyFile); }); }, function(err){ console.log('### ERR: filesystem.directoryUp() - ' + (JSON.stringify(err))); }); </script>