模块可以下载文件吗?

时间:2010-08-25 23:44:23

标签: php drupal drupal-modules

我有一个drupal模块,需要来自网络的其他文件。模块是否可以在激活时下载这些文件?

2 个答案:

答案 0 :(得分:3)

Drupal Way 是使用File Interface和安装挂钩:

如果文件只需要下载一次,最好使用hook_install()并使用hook_requirements()提供有关其是否有效的反馈。如果每次启用模块时都需要新数据,请选择hook_enable()

在下载文件方面,请使用您想要的任何PHP方法。如果您需要使用外部库,请将其放在模块的目录中并使用include和/或require,或考虑使用Libraries API,其目的是提供一个中央存储库第三方脚本和库。

获得文件数据后,您将使用文件界面。模块可以访问站点的文件目录(在站点配置 - > 文件系统中定义)。您首先使用file_create_path()在其下创建自己的目录,然后使用file_save_data()将数据保存到其中。查看文件界面API documentation的其余部分,了解您可以执行的其他操作。

然后,一旦保存,只需使用file_check_location()检查数据是否可用于文件系统,然后使用file_get_contents()include/require进行访问。

答案 1 :(得分:2)

假设PHP配置为允许远程文件访问(请参阅allow_url_fopen)并且模块目录具有写入权限,您可以在hook_enable中下载任何所需文件,或者甚至更好,{{3} }。