我试图允许用户将包含
javascript文件的文件夹拖放到html 5页面.这就是我目前拥有的:
$scope.files = [];
//Establish dropzone
var dropBox;
dropBox = document.getElementById("fileDragAndDrop");
dropBox.addEventListener("dragenter",dragenter,false);
dropBox.addEventListener("dragover",dragover,false);
dropBox.addEventListener("drop",drop,false);
//Events
function dragenter(e) {
e.stopPropagation();
e.preventDefault();
};
function dragover(e) {
e.stopPropagation();
e.preventDefault();
};
function drop(e) {
e.stopPropagation();
e.preventDefault();
var items = e.dataTransfer.items;
for (var i = 0,item; item = items[i]; i ++) {
var entry = item.webkitGetAsEntry();
if(entry) {
traverseFileTree(entry);
}
}
};
//resursive file walker
function traverseFileTree(item) {
if(item.isFile) {
$scope.$apply(function () {
$scope.files.push(item);
});
} else if (item.isDirectory) {
var dirReader = item.createReader();
dirReader.readEntries(function(entries) {
for (var i = 0; i < entries.length; i++) {
traverseFileTree(entries[i]);
}
});
}
};
所以拖放工作,但我有阅读文件内容的问题.
$scope.parse = function () {
for(var i = 0; i < $scope.files.length; i++) {
var fileReader = new FileReader();
fileReader.onload = function (e) {
console.log(fileReader.result);
};
fileReader.onerror = function(err) {
console.log(err);
};
fileReader.readAsBinaryString($scope.files[i]);
}
};
我没有收到任何错误消息,这使得调试很困难.难道我做错了什么?有没有人有任何问题做类似的任务?