界面方面:
编程方面:
那么,难点在哪里呢? 即拍即传好办,无需控制上传时机。批量上传,则比较麻烦,有这么几种思路:
- 外部拿到上传组件的控制器,以触发上传动作
- 上传组件只负责界面,它对外输出为File数组 @H_301_32@
方法1比较丑陋,不符合React的一般设计模式。方法2比较漂亮,符合React组件的一般设计规则。
百度FEX设计的WebUploader非常优秀,不过就是太重,并且不太好移植到React里面去,用起来相当疙疙瘩瘩。如果能把WebUploader拆一下就好:
*. 前端部分,提供选择文件、删除文件、生成缩略图等功能。前端部分接受一个prop:onFileSelected(files)
<Uploader onFileSelected={fileSelectedCallback} />
function fileSelectedCallback(files) {
var uploader = new Uploader();
uploader
.on("allFileUploaded",function(fileInfos) {
// 所有文件上传成功,处理更多内容
// put your code here...
}).uploadFile(files);
}
经过这么一拆,beautiful!基本做到跟普通React文本框组件的易用性差不多了。