5

我为drupal编写一个模块,我试图从我的模块创建一个节点,一切都很好,我创建图像只有一个问题,图像存在于不同的服务器上,所以我想抓取页面并插入它,我安装模块http://drupal.org/project/filefield_sources,它有远程选项,我在模块代码中搜索,我找不到他用于这个过程的功能,模块从界面上工作得很好,但是我是怎么做的它从代码中完成工作?我应该调用哪个函数,应该传递什么参数。

我已经完成了 Drupal 6。

4

2 回答 2

10

希望您使用的是 Drupal 7 ...

system_retrieve_file()函数将从远程源下载文件,将其从临时文件复制到指定的目标位置,file_managed如果您希望对其进行管理,还可以选择将其保存到表中。

$managed = TRUE; // Whether or not to create a Drupal file record
$path = system_retrieve_file($url, 'public://my_files/', $managed);

如果您想在完成此操作后立即获取文件对象,以下是我迄今为止找到的唯一方法:

$file = file_load(db_query('SELECT MAX(fid) FROM {file_managed}')->fetchField());
于 2011-10-11T16:49:54.770 回答
4

使用 $path->fid 获取 fid。不需要mysql

于 2013-07-23T11:19:35.203 回答