2010-10-14 18 views
0

Avec print_r je reçois:Pourquoi ce champ de fichier ne sauvegarde-t-il pas l'objet noeud?

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 

Il enregistre toutes les autres données parfaitement, mais pas l'image. Après:

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

je fais un print_r sur l'objet $ node, et il n'y a aucune référence à "field_car_image". Quelqu'un sait comment enregistrer correctement les champs de fichiers?

Répondre

2

Il vous manque le code d'identification (ID de fichier) des fichiers de table dans le tableau de champs de fichier; Pour télécharger correctement un fichier dans drupal, assurez-vous d'utiliser la fonction file_save_upload http://api.drupal.org/api/function/file_save_upload/6

Ce code vous montre comment enregistrer un champ de fichier dans le noeud.

$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

Ok, mais comment utilisez-vous la fonction file_save_upload, si vous ne faites pas de téléchargement? J'ai déjà le fichier au bon endroit. Dois-je créer manuellement une entrée dans la table des fichiers? – coderama

+0

Essayez-vous de créer l'objet nœud par programme? parce que ma solution était dans ce but. Ce que je veux dire est: vous avez un formulaire personnalisé où ppl télécharger votre fichier et d'autres informations. Une fois qu'ils cliquent sur Enregistrer, vous construisez un nouvel objet $ node avec les informations transmises. Si vous essayez d'obtenir quelque chose d'autre, veuillez expliquer le contexte :) – Bladedu