drupal_execute 填充图像字段

问题描述 投票:0回答:2

如何使用 drupal_execute 填充图像字段值。

例如我的内容类型(测试)有两个附加字段 1. 照片(图像提交), 2.phid(文本字段)

对于 phid

$form_state['values']['field_phid'][0]['value'] ='14';
。如何填充图像字段类型的照片

php image drupal field execute
2个回答
1
投票

如果文件已经上传到 Drupal 并且有文件 ID (fid) 那么你可以这样做

$form_state['values']['field_image_filed'][0]['fid'] = 17; //where 17 is the Drupal file ID of the file you want input

如果文件尚未上传,那就要棘手得多。您首先需要以编程方式创建该文件。我无法立即引导您完成它,但寻找模板以了解如何完成的一个好地方是服务模块的 file_service.inc 中的 file_service_save() 函数:
http://drupalcode.org/viewvc/drupal/contributions/modules/services/services/file_service/file_service.inc?revision=1.1.2.7.2.3&view=markup&pathrev=DRUPAL-6--2-2

需要明确的是:我并不是说您将使用 file_service_save() 来完成上传,而是该代码向您展示了需要做什么。它将向您展示如何使用 file_save_data() 将文件保存到服务器,将文件记录到 Drupal“文件”表,然后调用 hook_file_insert 通知其他模块文件已保存。


1
投票

我找到了如下解决方案。我不知道优点和缺点,但它对我来说效果很好。

$image = "*******/test.jpg";
$field = content_fields('field_img', 'img_test');
$validators = array_merge(filefield_widget_upload_validators($field), imagefield_widget_upload_validators($field));
$files_path = filefield_widget_file_path($field);
$form_state['values']['field_img'][]= field_file_save_file($image, $validators, $files_path, FILE_EXISTS_REPLACE);
© www.soinside.com 2019 - 2024. All rights reserved.