代码之家  ›  专栏  ›  技术社区  ›  rockstardev

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

  •  0
  • rockstardev  · 技术社区  · 15 年前

    有了打印功能,我可以:

    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对象上做了一个打印,没有对“field-car-u-image”的引用。有人知道如何正确保存文件字段吗?

    1 回复  |  直到 15 年前
        1
  •  2
  •   Bladedu    15 年前

    您在filefield数组中缺少表文件的FID(文件ID);要在drupal中正确上载文件,请确保使用文件保存上载功能 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,
            ),
        );