2011-10-11 140 views
5

为drupal编写模块,我试图从模块创建节点,一切都很好,我只有1个问题与创建图像,图像存在不同服务器,所以我想抓取页面并插入它,我安装模块http://drupal.org/project/filefield_sources,它具有远程选项,我在模块代码中搜索,我找不到他用于此过程的功能,模块从界面工作非常好,但我如何让它从代码中完成这项工作?我应该调用哪个函数以及应该传递哪个参数。Drupal - 从url获取图像并将其导入节点

我在Drupal的6

回答

9

希望你使用Drupal的7 ...

system_retrieve_file() function会下载从远程源文件,从临时复制到指定的目的地和可选如果您希望对其进行管理,请将其保存到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()); 
+1

由于id列在Drupal 7.17中不存在,所以我必须将'SELECT MAX(id)'更改​​为'SELECT MAX(fid)'到最后一个查询: –

+0

@PatrickPeak好点,已经解决了 – Clive

4

得到FID使用$路径 - > FID。不需要mysql