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?
$node->field_image[$node->language][0]
, regarder la 0Mais 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
Vous devez vous connecter pour publier un commentaire.
Pour Drupal 7, j'ai joué un peu avec ce tout à fait un peu et trouve la meilleure façon (et la seule façon que j'ai de travail) était d'utiliser Entité de métadonnées wrappers
J'ai utilisé un fichier géré par élément de formulaire, comme ceci:
Je passe également le long de la $objet de nœud dans mon formulaire comme valeur
Puis dans ma soumission gestionnaire je n'ai tout simplement la suivante:
OriginalL'auteur masterchief
j'ai utilisé votre code pour télécharger un fichier dans le champ fichier de contenu("document" dans mon cas) et cela a fonctionné. Juste eu à ajouter une valeur pour field_document_file d'affichage " dans le code.
ici est exactement le script que j'ai utilisé:
OriginalL'auteur Betsen
Kevin, c'est ce que j'ai trouvé dans le Drupal doc sous http://drupal.org/node/201594 ci-dessous dans les commentaires. Mais je ne suis pas sûr du tout. J'essaie la même chose, de sorte s'il vous plaît laissez-moi savoir ce que vous avez trouvé.
OriginalL'auteur Digidog