2

ノードを作成し、Drupal-7 で既存のファインをアタッチしようとしています。

サーバー側の既存のファイルを新しく作成されたノードに添付するのにかなりの時間を費やしました。ファイルのアップロード/保存の例がほとんどどこにでもあり、ノードにアタッチします。新しく作成されたノードに既存のファイルを添付する方法を説明するドキュメントは入手できませんでした。

大まかに言うと、私のコードは次のとおりです。

 $node = new stdClass();
 $node->type = resume' ;  // a new content type created
 node_object_prepare($node);
 $node->title = My title';
 $node->language = 'en'; 
 $node->uid = 1; 
 $file_obj = file_load($fid); 
 $node->field_resume[$node->language][0] = (array)$file_obj; //field_resume is the   machine name for file field
 node_save($node);

誰かが私がここで欠けているものを教えてもらえますか? アタッチメントなしで新しいノードが作成されます。ファイルをノードに添付するにはどうすればよいですか。

4

2 に答える 2

1

通常、これは機能するはずです。次の行を追加して、機能するかどうか教えてください。

$node = new stdClass();
$node->is_new = TRUE; // This is the line I added.
// Your code continues as is...

これがうまくいくことを願っています...ムハンマド。

于 2012-10-10T10:20:14.520 に答える
0

これを自分で行ったことはありませんが、次のことが行われているリンクを見つけました。

$node->field_resume[$node->language][0]['fid'] = $fid;

あなたのコードとの違いは、上記のコードは単に $fid を設定するだけだということです。うまくいくかどうかはわかりませんが、試してみてください。

さらに、file_usage_add()を呼び出して、ノードが現在そのファイルへの参照を保持していることを Drupal に知らせることができます。

于 2012-10-10T07:53:40.307 に答える