前一阵子做了一个学校实验室的选课系统。
提到选课系统就感觉像是学生阶段的练手作品。
确实如此,因为有学生已经做过了,我的学弟做的,使用TP2框架,结果1秒钟被我黑了(哈哈,TP的那个RCE你懂的)。
后来由我接手做这个东西,当然是公司工作交接之前的。
要求除了常规的发布课程,学生选课,课程安排,名单统计等功能外,还要有些额外的特色功能,比如这个要求:教师上传文档(Word、Excel、TXT、PDF)等要求学生可以查看,但是不能下载(按权限可下载),最好能做成百度文库的样子。
其实解决方法比较多,在Linux下面做最稳定,如果时间允许的话甚至可以自己写个转换工具。但是需求方(实验室)要求2周内拿出demo,就比较着急了。
最终决定使用Print2Flash来做这个转换。当时想法比较多,还想用java写个队列什么的,用来解决大文件上传和文件转换,防止php上传响应时间过长等导致的体验问题,不过时间确实不允许。
关于Print2Flash,这里是官方网站:http://print2flash.com/,里面有samples以及文档,甚至有SDK,资料相对比较多。所以使用方面我也就不多说了。
后来在生产环境部署后,上传转换过程中出现了Code: 1155. No application is associated with the specified file for this operation.错误,其论坛也有描述:http://print2flash.com/forum/viewtopic.php?f=6&t=185&p=407&hilit=1155#p407 ,不过08年的事情了而且并没有提出解决方法。Code1155是微软的错误代码,其内容就是文件关联错误,与描述一致。
百度到一个百度空间,提供了一个修复注册表解决这个问题的方法。我仔细看了下其实是修复了pdf的文件关联到adobe reader上。但经过我的测试并不起作用。
pdf的文件关联使用的是百度阅读器(其实后来发现不需要pdf关联),doc的文件关联使用的是wps。
修复了能想到的文件关联还是不行。
几近崩溃的时候想起来当时用的windows的com接口,之前有方法是直接用ms word的com接口,我猜测p2f也是这样,于是乎装了个ms office 2010,问题解决。
最后提下使用中需要注意的问题:
1、官方的samples中已经非常详细,完全可以学会使用,一点英文不是问题。
2、在使用php创建p2f对象时候,可以使用try...catch来避免致命错误,并可以提供exception详细的错误信息。
3、Print2Flash本身可以选择模板样式,可以选择性显示logo、搜索等按钮。同时如果使用的是注册版,可以在接口中直接重新定义,更加灵活(貌似1K多一个license)。当到期后可以选择重新安装来续期。。。。
4、Print2Flash要使用server模式。填写域或计算机/用户名,密码来确认服务启动身份。
(图片丢失。。。)
(图片丢失。。。)
当红色的“Not installed”变成绿色的“Installed”就说明安装完毕了。
6、附上使用之后的效果。
(图片丢失。。。)
点击查看大图:)
留言交流