请问老师,joomla可以实现调用perl程序吗

老师,我想用joomla做一个学术类网站,用户要上传他们的一个基因组测试文件,然后我想在joomla里面调用在服务器上运行的perl程序进行分析,再将分析结果发送到用户邮箱。请问以上调用perl程序的过程可以通过插件自动完成吗?或者说,至少是否可以通过自己开发插件的方法以解决自动处理用户上传文件的功能(哪怕是上传的txt,略加修改后发送给用户也好)?
已邀请:

刘备曹操 - 古今多少事,都付谈笑中

赞同来自:

Joomla 扩展里面能允许用户上传文件的很多。比如常见的 CKeditor 或者 JCE 这两个编辑器,就允许用户上传文件,你可以允许所有用户将文件上传到同一个指定目录(缺陷是容易发生“覆盖”或者“误删”);你也可以设置为每一个人只能上传到自己的专用目录(主上传目录下面以每个用户名为子目录的专用目录)。
如果你的 Perl 程序能够自动探查主目录下的子目录并自动处理文件,那么,推荐上述第二种方案,这种方案下,用户之间看不到别人的文件,只能看到自己的文件。你可以让 Perl 程序把处理后的文件赋予特殊的扩展名或者打包成 zip 格式(总之从外观上很容易与处理前的原始文件区分)。然后,用户可以自行上线,下载自己的处理后的文件。
当然,这个方法还是不够“自动化”。最佳的方案是:专门开发一个基因组文件处理扩展:
1、这个扩展的前台界面主要是一个表单,包括上传者的联系方式以及对文件的注释说明,最后当然还有一个上传按钮;
2、上传之后,程序自动将文件改名(比如给文件名末尾添加用户 ID 数字后缀),存放在统一的目录中;
3、服务器端设置 Cron 计划任务,在服务器闲暇时段(例如凌晨4时)开始批量处理这些文件;
4、处理后的文件,会被自动转移到另一个子目录(例如名叫 processed);
5、本扩展自动扫描 processed 目录,一旦发现有文件,就将该文件作为邮件附件发送给用户(通过文件名末尾的 ID 数字后缀来判断发送给哪个用户);
6、如果允许处理后文件保留在服务器上,那么在发送成功之后就转移到 sent 子目录;如果不保留,则在发送成功之后删除;
几点补充:
1、如果能通过 PHP 实现相同的功能,建议将 Perl 程序那些功能转移到 PHP 上面,融合到这个扩展里面,这样就摆脱了对服务器端 Perl 程序的依赖,这个扩展可以在全球任何一部支持 Joomla 的服务器上面安装,安装之后就能立即工作;
2、如果同一个文件需要多次上传、处理、改进、再上传、再处理,那么这个扩展还必须设计得更复杂一些,就像 Gmail 把邮件作为会话管理一样,把同一个文件的处理过程做成连续记录;
3、对于科研工作,少不了必要的统计、报告,所以,这个扩展必须具备一定的统计、绘图、报告总结功能。
4、如果你们不具备 Joomla 扩展开发能力,没关系,你们知道整个流程,也就是说,你们应该清楚自己需要什么,那么,把这些需求告诉熟练的 Joomla 扩展开发者,就能做出满意的扩展。—— 不要担心人家做不出来,所有软件说到底都是 001010101 的组合而已,只要你能给出创意,开发人员就能拿出软件,除非他没这个水准,但这不是 PHP 语言的错。

要回复问题请先登录注册