0

print_r を使用すると、次のようになります。

stdClass Object
(

 [field_car_image] => Array
    (
        [0] => Array
            (
                [filename] => HERMAN 096.jpg
                [filepath] => sites/default/files/HERMAN 096.jpg
                [filemime] => image/jpeg
                [filesize] => 933105
                [status] => 1
            )

    )
 ..... // the rest is also on here

画像だけでなく、他のすべてのデータを完全に保存します。後:

node_object_prepare($node); 
$node = node_submit($node);
node_save($node);

$node オブジェクトで print_r を実行しましたが、「field_car_image」への参照はありません。ファイルフィールドを適切に保存する方法を知っている人はいますか?

4

1 に答える 1

2

filefield 配列内のテーブル ファイルの fid (ファイル ID) がありません。drupal でファイルを正しくアップロードするには、必ず file_save_upload 関数を使用してください http://api.drupal.org/api/function/file_save_upload/6

このコードは、ファイルフィールドをノードに保存する方法を示しています。

 $node->field_car_image = array(0=>array(
            'fid'=>$fid,//get this value from the file object returned by file_save_upload
            'uid'=>$uid,//user ID
            'filename'=>$filename,
            'filepath'=>$filepath,
            'filemime'=>$filemime,
            'filesize'=>$filesize,
            'status'=>$status,
            'timestamp'=>$timestamp,
        ),
    );
于 2010-10-14T08:20:34.080 に答える