如何将手机摄像头拍摄的图像移动到 Cordova 应用程序目录?
我想将文件移动到,理想情况下使用 mkdir 之类的新目录功能
app/www/uploads/new
文件的图像位置保存在 var 中:
imagePath = file://emu/0/android/cache/something.jpg
欢迎任何帮助。
我正在使用 Cordova 4.1.2 版并安装了 Cordova 文件插件。
如何将手机摄像头拍摄的图像移动到 Cordova 应用程序目录?
我想将文件移动到,理想情况下使用 mkdir 之类的新目录功能
app/www/uploads/new
文件的图像位置保存在 var 中:
imagePath = file://emu/0/android/cache/something.jpg
欢迎任何帮助。
我正在使用 Cordova 4.1.2 版并安装了 Cordova 文件插件。
我确实认为该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 文章。