2

如何将手机摄像头拍摄的图像移动到 Cordova 应用程序目录?

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

app/www/uploads/new

文件的图像位置保存在 var 中:

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

欢迎任何帮助。

我正在使用 Cordova 4.1.2 版并安装了 Cordova 文件插件。

4

1 回答 1

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 的答案中借用的,它可能不完全适合您的情况,但您应该能够从那里获得这个想法。它依赖于您的 HTML 中提供了这种类型的图像标签。

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

如果您想了解更多相关信息,请参阅Wikipedia 文章。

于 2015-01-04T11:27:25.370 回答