Stream上传插件(文件夹上传支持)

HTML5文件夹上传,目前支持的浏览器有Chrome21+, Opera15+。是实现文件夹上传的功能时,主要参考两段JS文件,地址:http://protonet.github.io/plupload/src/javascript/plupload.html5.js(是关于拖拽上传文件的巧妙处理方式),

http://html5-demos.appspot.com/static/html5storage/demos/upload_directory/index.html(通过文件选择按钮上传文件夹,需要翻墙)。

主要是拖拽处理的方式复杂一些,贴出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://git.oschina.net/jiangdx/stream/attach_files

另外,推广一下我的网盘搜索引擎:http://www.impress.pw (搜索种子文件非常好用~)


转载于:https://my.oschina.net/twinkling/blog/189815

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值