Javascript Chrome Drop文件夹-不完整的文件
我正在开发一个支持drop folder的上传程序,它还可以,但我的用例失败了 我有一个文件夹,里面有多个文件和文件夹,文件量分别为2511和2451个文件夹。我不知道原因,但在删除功能后,它只能识别1576个文件及其父文件夹 这是我正在使用的下降函数:Javascript Chrome Drop文件夹-不完整的文件,javascript,html,google-chrome,dropzone.js,Javascript,Html,Google Chrome,Dropzone.js,我正在开发一个支持drop folder的上传程序,它还可以,但我的用例失败了 我有一个文件夹,里面有多个文件和文件夹,文件量分别为2511和2451个文件夹。我不知道原因,但在删除功能后,它只能识别1576个文件及其父文件夹 这是我正在使用的下降函数: filescnt=0; nop=0; $("#dropingArea").on('dragover',function(e){ e.preventD
filescnt=0;
nop=0;
$("#dropingArea").on('dragover',function(e){
e.preventDefault();
e.stopPropagation();
});
$("#dropingArea").on('dragenter',function(e){
e.preventDefault();
e.stopPropagation();
});
$("#dropingArea").on('drop',function(e){
console.log(e);
if(e.originalEvent.dataTransfer){
if(e.originalEvent.dataTransfer.files.length) {
e.preventDefault();
e.stopPropagation();
/*UPLOAD FILES HERE*/
console.log(e.originalEvent.dataTransfer.items);
items = e.originalEvent.dataTransfer.items;
for (var i=0; i<items.length; i++) {
var item = items[i].webkitGetAsEntry();
if (item) {
traverseFileTree(item);
}
}
}
}
});
function traverseFileTree(item, path) {
path = path || "";
if (item.isFile) {
// Get file
filescnt++;
item.file(function(file) {
console.log("File:", path + file.name);
});
} else if (item.isDirectory) {
// Get folder contents
var dirReader = item.createReader();
dirReader.readEntries(function(entries) {
for (var i=0; i<entries.length; i++) {
traverseFileTree(entries[i], path + item.name + "/");
}
});
}
}
filescnt=0;
nop=0;
$(“#dropingArea”)。在('dragover',函数(e){
e、 预防默认值();
e、 停止传播();
});
$(“#dropingArea”)。关于('dragenter',函数(e){
e、 预防默认值();
e、 停止传播();
});
$(“#dropingArea”)。关于('drop',函数(e){
控制台日志(e);
if(如原始事件数据传输){
if(例如originalEvent.dataTransfer.files.length){
e、 预防默认值();
e、 停止传播();
/*在这里上传文件*/
日志(例如originalEvent.dataTransfer.items);
items=e.originalEvent.dataTransfer.items;
对于(var i=0;iFrom
要读取目录的内容,请创建DirectoryReader并调用
它的readEntries()方法。不能保证
目录的条目将在对的单个调用中返回
readEntries()。这意味着您需要继续呼叫
直到不再返回结果为止
同样,从上一页:
function onInitFs(fs) {
var dirReader = fs.root.createReader();
var entries = [];
// Call the reader.readEntries() until no more results are returned.
var readEntries = function() {
dirReader.readEntries (function(results) {
if (!results.length) {
listResults(entries.sort());
} else {
entries = entries.concat(toArray(results));
readEntries();
}
}, errorHandler);
};
readEntries(); // Start reading dirs.
}
请注意,在我们读取了一些结果(results.length!=0)的情况下,我们对同一个dirReader调用readEntries以获取下一个文件“块”
要读取目录的内容,请创建DirectoryReader并调用
它的readEntries()方法。不能保证
目录的条目将在对的单个调用中返回
readEntries()。这意味着您需要继续呼叫
直到不再返回结果为止
同样,从上一页:
function onInitFs(fs) {
var dirReader = fs.root.createReader();
var entries = [];
// Call the reader.readEntries() until no more results are returned.
var readEntries = function() {
dirReader.readEntries (function(results) {
if (!results.length) {
listResults(entries.sort());
} else {
entries = entries.concat(toArray(results));
readEntries();
}
}, errorHandler);
};
readEntries(); // Start reading dirs.
}
注意,在我们读取了一些结果(results.length!=0)的情况下,我们对同一个dirReader调用readEntries来获取下一个文件“块”