2010-08-20 110 views
1

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

用于离我的内容类型(试验)具有两个附加字段 1.照片(图像提交), 2. PHID(文本字段)

为PHID $form_state['values']['field_phid'][0]['value'] ='14';。如何填充照片是像场型

回答

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); 
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来通知其他模块文件已保存。