1

drupal_executeを使用して画像フィールドの値を入力する方法。

たとえば、私のコンテンツタイプ(テスト)には2つの追加フィールドがあります1.写真(画像ファイル)、 2.phid(テキストフィールド)

ファイド用$form_state['values']['field_phid'][0]['value'] ='14';。画像フィールドタイプの写真を入力する方法

4

2 に答える 2

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);
于 2010-08-26T07:28:15.740 に答える
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:
http://drupalcode.org/viewvcの file_service_save() 関数は、テンプレートを探すのに適した場所です。 /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 の「files」テーブルに記録し、hook_file_insert を呼び出してファイルが保存されたことを他のモジュールに通知する方法を示します。

于 2010-08-20T17:26:40.813 に答える