2015-01-04 47 views
0

我怎样才能摆脱我的手机相机拍摄到科尔多瓦app目录的形象呢?如何将文件app目录科尔多瓦

我要移动的文件,最好有类似功能的mkdir新目录

app/www/uploads/new 

文件的图像位置被保存在一个VAR

imagePath = file://emu/0/android/cache/something.jpg 

任何帮助是值得欢迎的。

我使用的科尔多瓦4.1.2版 还安装了科尔多瓦文件插件

回答

1

我觉得app/www目录是只读的,因为它包含您的实际代码,并打包成.apk文件。尽管如此,你为什么还需要它?它仍然是在磁盘上。如果你想复制它自己的应用程序数据的分区,你应该使用你已经提到将它移到下cordova.file.externalDataDirectory或者您希望将它移到其他地方的文件插件

更新

既然你要显示的文件与HTML图像,最简单的方法是将它读成数据URL(Base64格式),并给作为SRC图像,而不是文件路径这样

window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, onFail);} 

function onFail(message) { 
    alert('Failed because: ' + message); 
} 
function gotFS(fileSystem) { 
    fileSystem.root.getFile("<your_image_file>.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); 

     var imageData = evt.target.result; 
     document.getElementById("img#image1").src = imageData; 
    }; 
    reader.readAsDataURL(file); // Read as Data URL (base64) 
} 

的结构,其代码从Pratik Sharma's answer借来的,它可能无法完全对您的情况下工作,但你应该能够从那里挑了这个念头。它依赖于你的HTML上有这种图像标签。

<img id="image1" src="" /> 

如想进一步了解此内容,请参阅this维基百科的文章。

+0

好,谢谢,所以如果我将它保存在externalDataDirectory,我可以显示HTML5的形象呢?否则,我不知道如何显示图像。如果我可以将其移动到www /上传/新..我可以做类似,因为那时我不需要绝对路径。 – 2015-01-04 11:33:20

+0

这是跨平台适用的权利?你也许有一个示例代码? :) – 2015-01-04 11:34:04

+0

感谢您的答案,我会等待一些其他解决方案。我确实认为这可能会奏效..但是在性能方面,我不认为这是最好的解决方案,因为用户可以拥有超过50张图片。 – 2015-01-04 12:08:48