2010-08-20 377 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來通知其他模塊文件已保存。