Le téléchargement et l'enregistrement d'un fichier par programmation Drupal nœuds

Je suis en train de créer un nœud basé sur un formulaire personnalisé de soumission. Tout fonctionne très bien sauf pour les images téléchargées.

Je peux les capturer fines et les mettre dans le formulaire de cache d'objets. Quand je passe les données dans la fonction pour créer le nœud, j'obtiens cette erreur:

"Le fichier spécifié n'a pas pu être copié, car aucun fichier de ce nom existe. Veuillez vérifier que vous avez fourni le bon nom de fichier."

J'ai également recevoir le message d'erreur plusieurs fois, en dépit de soumettre une ou deux images à la fois.

Voici le code que j'utilise. $uploads est passé en et de est un tableau d'objets file retourné à partir de file_save_upload() dans une étape précédente:

if (isset($uploads)) {
    foreach ($uploads as $upload) {
      if (isset($upload)) {
        $file = new stdClass;
        $file->uid = 1;
        $file->uri = $upload->filepath;
        $file->filemime = file_get_mimetype($upload->uri);
        $file->status = 1;  

        $file = file_copy($file, 'public://images');

        $node->field_image[$node->language][] = (array) $file;
      }
    }
  }

  node_save($node);

J'ai aussi essayé ceci:

if (isset($uploads)) {
    foreach ($uploads as $upload) {
        $upload->status = 1;  

        file_save($upload);

        $node->field_image[$node->language][] = (array) $upload;
      }
    }
  }

  node_save($node);

La deuxième cause d'une erreur de clé en double dans MySQL sur le champ URI. Ces deux exemples que j'ai vu dans les tutoriels, mais ils ne sont pas de travail?

j'ai utilisé $node->field_image[$node->language][0], regarder la 0
Mais il y a plusieurs images, de sorte que [] est ce que je veux pas une valeur statique
droit - désolé, jamais utilisé plusieurs images ..
peut-être une matrice de confusion - essayez de configurer les touches explicite ..

OriginalL'auteur Kevin | 2011-09-13