Submitted by Anonyme (non vérifié) on
Bonjour,
Je suis en train de mettre en place un block avec quelques champs de config.
Je n'ai aucun problème pour ajouter des champs text ou textarea en revanche je n'arrive pas à ajouter un file upload dans la config du block.
J'ai actuellement un
$form['#attributes'] = array('enctype' => 'multipart/form-data');
et mon champs
$form['block_file'] = array(
'#type' => 'file',
'#title' => ...
...
)
Je vois bien le champs apparaitre (mais il s'agit juste d'un bouton "Parcourir", serait il possible également d'obtenir l'upload "classique" avec le bouton "parcourir" mais également le bouton "transfert de fichier" pour un envoi ajaxisé.
Bien cordialement et merci d'avance de m'avoir lu.
Sylvain
j’ai oublié de préciser donc
Permalien Soumis par michelsylv (non vérifié) le 9 Juin, 2011 - 10:41
j'ai oublié de préciser donc que le champs apparaissait mais ne se sauvegardait pas.
Merci
Avez-vous trouvé une solution
Permalien Soumis par selinav le 21 Juillet, 2011 - 12:14
Avez-vous trouvé une solution car j'arrive à afficher le champ mais pas à télécharger le fichier?
Bonjour, non pas de solution
Permalien Soumis par michelsylv (non vérifié) le 21 Juillet, 2011 - 18:48
Bonjour,
non pas de solution pour ma part, je me suis dirigé vers une autre solution fonctionnelle.
Il faudrait peut être poster la question sur drupal.org, ils ont l'air de répondre davantage par la bas.
Cdlt
Sylvain
j’ai réussi avec la fonction
Permalien Soumis par selinav le 22 Juillet, 2011 - 09:07
j'ai réussi avec la fonction file_upload_save()
Merci de cette
Permalien Soumis par michelsylv (non vérifié) le 22 Juillet, 2011 - 13:19
Merci de cette nouvelle,
pourriez vous nous donner un exemple avec l'initialisation du champs d'upload ainsi que votre fonction d'upload_save ?
cdlt
Voici le code que j'aurais
Permalien Soumis par selinav le 22 Juillet, 2011 - 14:08
Voici le code que j'aurais aimé trouvé car j'ai bien galéré pour le faire! Heureusement j'ai pu trouver de l'aide en anglais
<?php
function pulls_attributs_uc_form_alter(&$form, &$form_state, $form_id) {
if (strpos($form_id, 'add_to_cart_form') || strpos($form_id, 'add_product_form')) {
$form['broderie']['fichier_broderie']=array(
'#type' =>'file',
'#description' => t("Télécharger l'image à broder"),
'#weight'=> '51',
'#size'=> '40'
);
$form['#submit'][]='_pulls_attributs_traitement_fichier';
}
}
function _pulls_attributs_traitement_fichier($form, & $form_state){
//tableau contenant la liste des fonctions à appeler pour valider le transfert du fichier
$validators=array();
$validators['file_validate_extensions']=array('jpeg jpg gif png');
$validators['file_validate_size']=array(0=>$file, 1=>'58720256', 2=>'0' ); //58720256 bits = 7Mo
if($file = file_save_upload('fichier_broderie', $validators, $dest=false, $replace = FILE_EXISTS_RENAME)){
//change le statut du fichie pour qu'il soit enregistré de manière permanente
file_set_status($file, FILE_STATUS_PERMANENT);
drupal_set_message('Fichier broderie transféré');
} else {
drupal_set_message('Erreur transfert fichier');
}
}
?>
Cool, un grand merci je
Permalien Soumis par michelsylv (non vérifié) le 1 Novembre, 2013 - 06:36
Cool, un grand merci.
Bonne journée
Sylvain
« mais je pense que la
Permalien Soumis par Marina_Kha le 22 Juillet, 2011 - 18:05
« mais je pense que la communauté drupalfr n'est pas très impliquée...»
C'est vrai, vous êtes inscrit depuis plus de 40 semaines (presqu'un an) et vous n'êtes jamais intervenu pour aider qui que ce soit.
Une histoire de paille et de poutre, comme d'habitude.
Je viens de tomber sur ce
Permalien Soumis par anou le 13 Novembre, 2012 - 10:35
Je viens de tomber sur ce post et pour le coup de l'ajax il existe un autre #type que "file" : "managed_file".
Je posterais ma solution une fois finie mais déjà avec ce #type les 2 boutons (parcourir et transférer) apparaissent.
David
Et voici ma solution, bien
Permalien Soumis par anou le 13 Novembre, 2012 - 11:20
Et voici ma solution, bien inspirée de celle-là
NB : Vous noterez le léger abus des "****" mais sinon le sytème me met des
<strong>
ou des<em>
à la place...