Javascript Phonegap多文件读取

Javascript Phonegap多文件读取,javascript,android,cordova,Javascript,Android,Cordova,我正在寻找使用Phonegap在Android设备文件系统中读取多个文件,这样,在一个多部分POST请求中,我就可以将其提交到服务器 我的问题是,我不想存储读取的第一个文件,所以当最后一个文件加载完毕时,我可以在一个服务器调用中提交所有文件 下面是一个仅读取一个文件的示例,摘自Phonegap文档 // Wait for Cordova to load // function onLoad() { document.addEventListener("deviceready", onDe

我正在寻找使用Phonegap在Android设备文件系统中读取多个文件,这样,在一个多部分POST请求中,我就可以将其提交到服务器

我的问题是,我不想存储读取的第一个文件,所以当最后一个文件加载完毕时,我可以在一个服务器调用中提交所有文件

下面是一个仅读取一个文件的示例,摘自Phonegap文档

// Wait for Cordova to load
//
function onLoad() {
    document.addEventListener("deviceready", onDeviceReady, false);
}

// Cordova is ready
//
function onDeviceReady() {
    window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, fail);
}

function gotFS(fileSystem) {
    fileSystem.root.getFile("readme.txt", 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);
    };
    reader.readAsDataURL(file);
}

function fail(evt) {
    console.log(evt.target.error.code);
}
是否存在同步gotFile回调的方法,以便在发布文件时将所有文件都存储在内存中

如果没有,是否可以将二进制文件存储在浏览器内存中,同时考虑它们占用的内存量?还是显示我使用本地存储


谢谢

如果它们不适合RAM,它们就不可能适合本地存储,因为本地存储只有几个兆。如果你想在一个职位上发送他们,他们将需要在RAM一次全部。如果这太多,那么你可以一次发布一张,在上一个文件的上传帖子完成之前,不要调用reader.readAsXXX()。图像将是用Android设备拍摄的照片,我想我可以或多或少地控制它们的大小。但是,我不能发出多个请求,因为图像上载必须是事务性的,并且我不能更改服务器代码。谢谢假设我可以在内存中存储图像。我可以同步gotFile回调吗?更像是一个Javascript或编程问题。您可以创建一个空数组,将文件列表转换为数组和pop()文件项,然后在读取器回调中推入空数组。当输出数组的长度与文件列表的长度相同(原始数组不是现在的空数组)时,在一篇文章中上载整个DataURL数组。不确定您的服务器需要什么样的机制来实现这一点,但JS端就是这样工作的。。。