开发者

drupal_execute populating image field

开发者 https://www.devze.com 2023-01-12 14:57 出处:网络
How to p开发者_JAVA技巧opulate image field value with drupal_execute. for ex my content type (test) has two additional fields

How to p开发者_JAVA技巧opulate image field value with drupal_execute.

for ex my content type (test) has two additional fields 1. photo (image filed), 2. phid (text field)

for phid $form_state['values']['field_phid'][0]['value'] ='14'; . how to populate photo which is image field type


If the file is already uploaded to Drupal and has a file ID (fid) then you can just do

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

If the file isn't already uploaded it's a lot trickier. You'll first need to programmatically create the file. I can't walk you through it off-hand but a good place to look for a template as to how it should be done is the file_service_save() function in the Services module's file_service.inc:
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

To be clear: I'm not saying you'll use file_service_save() to accomplish the upload, but that that code shows you what needs to be done. It will show you how to save the file to the server using file_save_data(), record the file to the Drupal "files" table, then call hook_file_insert to notify other modules that a file's been saved.


i found the solution as below . i dont know pros and cons but it works fine for me.

$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);
0

精彩评论

暂无评论...
验证码 换一张
取 消