Почему это поле файла не сохраняется на объекте узла? - PullRequest
0 голосов
/ 14 октября 2010

С 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);

Я выполняю print_r для объекта $ node, и нет ссылки на "field_car_image". Кто-нибудь знает, как правильно сохранять поля файла?

1 Ответ

2 голосов
/ 14 октября 2010

Вам не хватает fid (идентификатор файла) файлов таблицы в массиве filefield;Для правильной загрузки файла в 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,
        ),
    );
...