朱建国
(同济大学 山东 205109)
随着人们对互联网的依赖越来越强,从互联网获取资源成为一种习惯,作为信息管理和技术开发人员,时常会有将大量各类文件资源(文档、音视频文件和软件等)转换和发布到网上的需求,而该项工作一般只能由计算机专业人员才能完成。当然可以通过已有的信息发布系统进行,但一般不能直接批量发布,发布效率低,同时还受已有系统功能和文件格式等的限制。
如果有一套对大量复杂文件资源方便的进行格式转换和网上发布的工具,一般操作人员能够简便的完成,可以很好的节约开发成本、提高工作效率和降低资源发布的技术门槛,同时对促进资源共享也会起到了积极的推动作用。笔者在对学校的精品课程建设过程中,总结和开发了一套基于PHP的对大量复杂文件资源格式转换和网上发布工具,可以很好的解决以上问题,在此与读者进行共享和探讨。
通过该设计的工具,可以将用户任意级文件夹中的各类文件,快捷的转换和发布到网上。发布后的资源既要保持原有的显示效果,又要有很好的兼容性和节约带宽以提高浏览速度,根据需要还可以支持下载。
为达到以上目标,对任意级文件夹的信息可采用自动转换为网页树的形式,或采用横纵向结合的多级菜单的形式展现。对各类文档例如Word、Excel、PowerPoint、PDF、WPS等采用自动转换为SWF的方式;对各类音视频文件采用转换为FLV的方式;不需要直接查看的文件例如软件和压缩文件则采用直接下载的方式。
PHP是一种高效的网络编程语言,既可在Web服务端运行,也可做客户端程序开发,同时其扩展库提供了丰富的功能。在此项目中既作为整合各类工具的开发语言,也可以作为转换发布后的Web服务端运行环境。
SWFTools是一组用来处理Flash的SWF文件的工具包,包含SWF合并、抽取和解析工具等。本项目中调用该工具实现将PDF、JPEG、PNG、AVI、TTF、WAV等文件自动转换为SWF文件,PDF文档和图片文件等转化为的SWF文件支持分页加载,用户浏览体验更好。
FlashPaper是Macromedia推出的一款电子文档类工具,它采用的是虚拟打印机的转换方式,能够将所有可直接查看的文档转换为SWF文件。该项目中调用该工具,将SWFTools不支持转换SWF的文件自动的转换为SWF文件。
DTree是由JavaScript编写的开源树形菜单组件,不需要复杂的操作即可生产,同时支持动态从数据库引入数据。该项目中使用DTree展现原始文件的目录树结构。
文件目录树的转换采用PHP递归读取本地文件所在的文件夹(也可采用BAT批处理的DOS命令DIR /B /S重定向到文件,PHP再读取文件分析的方法),生成符合DTree调用语法的任意级树形JS代码。如果文件夹级数不超过四级,也可以自动生成横纵向结合的菜单形式展现。
为保障系统的兼容性,该工具可通过PHP将汉字的文件夹名和文件名转换为拼音存储。为避免转换后文件和文件夹重名,可在转换后的拼音名后追加增一数字或随机数字,为方便文件夹和文件排序,可在原始文件和文件夹名前增加01、02等编号。
SWFTo o l s工具装好后,支持可视化界面转换SWF,也可通过命令行方式调用“C:SWFToolspdf2swf.exe "D:file1.pdf" -o "D:ile1page%%.swf" -f -T 9 -t -s storeallcharacters”转换为分页的SWF。同样,FlashPaper也既支持可视化界面转换SWF,也可命令行方式调用“C:FlashPaper2FlashPrinter.exe "D: file1.doc" -o "D:file1.swf"转换为SWF。以上命令需根据需要修改工具安装目录和文档存放目录。
通过PHP读取的文件路径和配置文件中的指定的工具所在目录等信息,组装以上命令并存放在BAT批处理文件中。自动转换SWF时,编写入口的BAT程序,先后调用以上PHP程序,再调用PHP程序生成的BAT批处理即可。
目前视频文件格式较多,而网络上FLV视频文件对带宽占用小和兼容性较好,可将其他视频转换为FLV文件发布,鉴于该项转换耗时长和转换中可能出现问题,该转换可通过第三方工具单独批量操作,建议不集成到与SWF一样的自动转换,通过PHP自动生成调用FLV文件的SWF播放器代码即可。当然,MPEG、RMVB等视频格式文件也可以不转换,通过PHP自动生成配有调用视频文件播放器的代码。
软件和压缩文件等不需要直接查看,可通过PHP自动拷贝到目标位置,转化后的目录树或菜单中增加下载的超级链接即可。
以上用户文件资源转换或拷贝后,还需要框架页面、调用FLV等视频文件的SWF组件等相关系统文件,这些文件相对固定,可先准备一份,自动转换SWF等文件时,通过PHP自动拷贝到目标位置即可。
通过以上步骤将原始文件资源转换后,即生成相对独立的资源网站,含网站程序文件和转换后的资源文件。因生成的页面主要为静态HTML和JS等代码,因此只要支持HTTP服务即可正常浏览。根据需要,生成的资源网站可适当使用PHP脚本,已提高网站的灵活性。
因Fl a s h Pa p e r等工具的限制,目前该项目只支持在Windows环境下运行。使用PHP的客户端开发功能,则只需要将php.exe、php5ts.dll和php.ini文件打包到项目程序中即可运行。
图1为以横纵向结合的菜单形式展现的转化后资源网站,图2为以无限级树形展现的转换后资源网站。该效果为FlashPaper转换的SWF,因篇幅限制SWFTools转换的分页SWF和FLV等效果在此不作具体效果展示。
图1 转换后的资源网站(菜单形式展现)
图2 转换后的资源网站(树形展现)
[1]袁鑫. PHP开发从入门到精通[M] 中国水利水电出版社2010:194-198
[2]Davey Shafik. PHP深度分析:101个核心技巧、窍门和问题解决方法[M] 中国水利水电出版社 2010:268-271
[3]jQuery MiniUI,Ajax快速开发[Z] www.open-open.com
[4]SWF manipulation and generation utilities[z]www.swftools.org