Ace*_*Ace 1 php drupal sync image cck
我正在尝试编写一个同步函数,将一些数据保存到节点,这很好,直到我尝试保存与节点关联的缩略图图像.
我已经设法下载文件并将其放在我的sites/default/files文件夹中,但是告诉Drupal的最佳方式是什么,"将此文件放在CCK图像域中"?
编辑为了澄清一点..我单独同步缩略图(因为一个图像可以被几个节点使用)...我想初始缩略图同步将文件保存在正确的文件夹(不是临时文件夹)中这个文件的图像字段...这就是使用field_file_save_file()来惹恼我的东西,它保存了一个新文件,而不仅仅是制作一个指针..任何建议?
您可以使用field_file_save_file();将文件从临时目录移动到desitnation,并创建要保存为CCK字段的对象.
请参阅:http://api.lullabot.com/field_file_save_file
然后你可以使用返回值保存你的字段,如下所示:
$node->field_image[0] = field_file_save_file($my_file_path, array(), $my_destination);
您可能需要运行一些测试.因此,您需要删除目标目录并再次执行此操作.
这段代码会这样做:
$imagefile = '/temp/somefile.jpg';
// Load up the CCK field
$field = content_fields('field_image', 'mycontenttype');
// Load up the appropriate validators
$validators = array_merge(filefield_widget_upload_validators($field), imagefield_widget_upload_validators($field));
// Where do we store the files?
$files_path = filefield_widget_file_path($field);
// Create the file object, replace existing file with new file as source and dest are the same
$file = field_file_save_file($imagefile, $validators, $files_path, FILE_EXISTS_REPLACE);
$node = node_load($mynode);
$node->field_image[] = $file;
$node = node_submit($node);
node_save($node);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5039 次 |
| 最近记录: |