0

私は現在、ファイルを Drupal に保存する必要がある Flash アプリケーションに取り組んでいます。ファイル サービスを使用してファイルを Drupal サイトに保存しましたが、node.save サービス (CCK ファイル フィールドではなくアップロード モジュール) を使用してノードにファイルを添付できません。

node.save で転送するオブジェクトは、AS3 では次のようになります。

var node:Object;
// all the other required node fields : nid, type, language, uid, name,
// status, title, changed, created, format, taxonomy, picture
node.files = new Array();

var aFile:Array = new Array;
aFile['list']=1;
aFile['weight']=0;
aFile['remove']=0;
aFile['description']="test.txt";

// id = id of the previously saved file
node.files[id] = aFile;

いくつかのフィールドが欠落しているか、そのようなものがあると思います。

4

2 に答える 2

0

node_load() でロードされたオブジェクトのデータを node_save() で保存する前に直接変更するモジュールのみに実際に関係していることがわかりました。他のモジュール (CCK など) は、(drupal_execute を使用して) フォームの #post データに作用します。

サービス モジュールには、アップロード モジュール (またはこのようなモジュール) を処理できるようにするためのパッチが必要です。

ここで開いたチケットの詳細に従うことができますhttp://drupal.org/node/881740

于 2010-08-16T03:43:22.440 に答える
0

おそらく、問題はaFileアレイに関係しています。AS3 で連想配列を作成するには、Adobe はオブジェクトを使用することをお勧めします。

var aFile:Object = new Object();
aFile['list']=1;
aFile['weight']=0;
aFile['remove']=0;
aFile['description']="test.txt";

// id = id of the previously saved file
node.files[id] = aFile;

アドビのドキュメントから:

  • 「Array クラスを使用して連想配列 (ハッシュとも呼ばれます) を作成しないでください。連想配列は、番号付き要素ではなく名前付き要素を含むデータ構造です。連想配列を作成するには、Object クラスを使用します。ActionScript では、配列クラスでは、配列クラスのメソッドまたはプロパティを連想配列と共に使用することはできません。」
于 2010-08-02T18:55:16.307 に答える