HTML5文件夹上传,目前支持的浏览器有Chrome21+, Opera15+。是实现文件夹上传的功能时,主要参考两段JS文件,地址:http://protonet.github.io/plupload/src/javascript/plupload.html5.js(是关于拖拽上传文件的巧妙处理方式),
function walkFileSystem(directory, callback, error) {
if (!callback.pending) {
callback.pending = 0;
}
if (!callback.files) {
callback.files = [];
}
callback.pending++;
var reader = directory.createReader(),
relativePath = directory.fullPath.replace(/^\//, "").replace(/(.+?)\/?$/, "$1/");
reader.readEntries(function(entries) {
callback.pending--;
plupload.each(entries, function(entry) {
if (entry.isFile) {
callback.pending++;
entry.file(function(File) {
File.relativePath = relativePath + File.name;
callback.files.push(File);
if (--callback.pending === 0) {
callback(callback.files);
}
}, error);
} else {
walkFileSystem(entry, callback, error);
}
});
if (callback.pending === 0) {
callback(callback.files);
}
}, error);
}
在callback的处理非常巧妙!目前Stram上传插件已经实现该功能,测试地址:http://p.twinkling.cn
另外,推广一下我的网盘搜索引擎:http://www.impress.pw (搜索种子文件非常好用~)