2010-10-14 47 views
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」的引用。任何人都知道如何正確保存文件字段?

回答

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, 
     ), 
    ); 
+0

好的,但是如果你實際上沒有上傳,那麼你如何使用file_save_upload函數呢?我已經將文件放在正確的位置。我必須手動在文件表中創建一個條目嗎? – coderama 2010-10-14 12:16:28

+0

您是否嘗試以編程方式創建節點對象?因爲我的解決方案是爲了這個目的。我的意思是:你有一個自定義表單,在這裏你可以上傳你的文件和其他信息。一旦他們點擊保存,就可以用傳遞的信息構建一個新的$ node對象。如果您想要實現其他功能,請更好地解釋背景:) – Bladedu 2010-10-14 13:40:03

相關問題