为什么这个文件字段不会保存在节点对象上?

时间:2010-10-14 07:49:01

标签: file drupal-6 filefield

使用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”的引用。有人知道如何正确保存文件字段吗?

1 个答案:

答案 0 :(得分: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,
        ),
    );