如何将文件移动到应用程序目录cordova

时间:2015-01-04 11:24:11

标签: cordova

如何将手机摄像头拍摄的图像移动到cordova app目录?

我想将文件移动到理想情况下,使用类似mkdir的新目录

app/www/uploads/new

文件的图像位置保存在var

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

欢迎任何帮助。

我使用的是Cordova 4.1.2版 还安装了Cordova文件插件

1 个答案:

答案 0 :(得分: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维基百科文章。