一直以来,无数个项目有这样的需求,然而每个项目做起来都自己开发一套,于是想自己设计实现这样一个组件,实现文件的统一存储、 上传、下载、预览、编辑功能,接口统一,对开发人员完全透明。思路如下:
1、采用统一数据库存储文件元数据信息,文件与业务数据关联信息
2、集成uploadify、Huploadify,html5和flash双内核文件上传
3、集成weboffice,word文档在线编辑
4、集成flexpaper、pdfjs, html5和flash双内核word文档在线查看
5、集成flowplayer、html5video, html5和flash双内核在线视频播放
6、集成highslide,图片、相册在线查看
7、实现文件统一上传、下载、预览、编辑接口
之后面临一系列后续优化问题,主要涉及视频文件转MP4(支持HTML5在线播放),word转pdf、pdf转swf,图片转缩略图等格式转换要求,文件MD5校验(用于重复上传检测,也就是秒传功能),断点续传上传问题等。看来实现这样一个系统还是挺复杂的,不过好在目前除文件格式转换、文件MD5校验、断点续传上传问题外,其它均已实现,效果非常好,有兴趣可以交流。