Quick links: Content - sections - sub sections
EN FR
Quick Search Advanced search
 
Page

  [Opened] Initialiser le contenu d'un champ upload

Posted by xanaxilovsky on 04/08/2011 17:06

Bonjour,

Est-il possible de préremplir le contenu d'un champ upload? J'ai procédé comme ceci mais le champ upload demeure vide alors que les autres sont remplis:

<code>
	$form = jForms::get('backoffice~produit');
	if ($form === null)
		$form = jForms::create("backoffice~produit");	
			
	$id = $this->param('ref');
	$produit = produit::get($id);
		
	$ctrl = new jFormsControlHidden('PROD_ID');
	$form->addControl($ctrl);
			
	$form->initFromDao('backoffice~produit', $id);
</code>

Merci d'avance pour vos réponses :)

  [Opened] Initialiser le contenu d'un champ upload

Reply #1 Posted by laurentj on 04/09/2011 21:47

Salut,

À priori, initialiser un champs input de type file, ce n'est pas possible en html. Et pour cause : tu ne peux pas savoir quel est le chemin du fichier sur l'ordinateur de l'utilisateur (et puis de toute façon, l'internaute peut ne pas être sur la même machine..). Et puis ça poserai des problèmes de sécurité.

Bref, pas possible de préremplir. Si c'est pour garder la valeur d'un affichage à un autre, il faut que tu stockes dans un hidden le nom du fichier.

  [Opened] Initialiser le contenu d'un champ upload

Reply #2 Posted by xanaxilovsky on 04/11/2011 11:45

Bon, supposons que j'ai un formulaire d'ajout de produit et qu'il contient un champ upload pour l'ajout de l'image du produit. Pour l'insertion, ca va. Mais pour le mis à jour, je dois à chaque fois re-uploader l'image. Y-a-t'il une solution pour éviter cela?

  [Opened] Initialiser le contenu d'un champ upload

Reply #3 Posted by laurentj on 04/11/2011 13:55

La solution est celle que je te disais : il te faut un autre champs, (hidden, output..) pour stocker/récupérer le nom de ton image, en plus du champs upload. quand il y a un upload, il faut considérer ça comme une mise à jour. et donc dans ton contrôleur, pour le submit, tu mets à jour ton champs hidden/output.

Il n'y a pas d'autres solutions.

Tu as un exemple ici module simplenews_admin

  [Opened] Initialiser le contenu d'un champ upload

Reply #4 Posted by Julien on 04/12/2011 16:00

xanaxilovsky a dit :
Bon, supposons que j'ai un formulaire d'ajout de produit et qu'il contient un champ upload pour l'ajout de l'image du produit. Pour l'insertion, ca va. Mais pour le mis à jour, je dois à chaque fois re-uploader l'image. Y-a-t'il une solution pour éviter cela?

Hello,

je travaille sur une modif de jforms en ce sens, avec la possibilité de retrouver un aperçu/un lien vers le fichier déjà uploadé et spécifié dans une propriété du DAO du formulaire, avec une case pour supprimer le cas échéant.

J'ai déjà un patch qui, lorsque l'on relit le champ upload à une propriété du dao, si le champ upload du formulaire est vide, la propriété du dao n'est pas remise à null, ce qui fait qu'on a pas besoin de remonter le fichier à chaque modif et donc pas de champs caché.

le patch en question : https://bitbucket.org/julieni/jelix-trun(..)

faut que je me prenne un peu de temps pour mettre tous les patches au carré et les proposer...


Julien

  [Opened] Initialiser le contenu d'un champ upload

Reply #5 Posted by foxmask on 04/12/2011 21:26

@julien : c'est ce que je fais à peu de chose pres avec mon module de downloads, mais j'ai un petit bug de rien du tout sur le truc.

j'envoie le fichier et le stocke. quand j'edite la description du fichier j'ai fait une ancre avec "x nom du fichier" et quand je clique sur le lien, je retire de la table le nom du fichier et avec un bout d'ajax je réaffiche le controle upload.

ça fait une bonne soupe :-) En tout cas il marche au moins chez manooweb et sur havefnubb.org/downloads/ ;-)


@GitHub - Forum HaveFnuBB! powered by Jelix - Le Booster Jelix !

  [Opened] Initialiser le contenu d'un champ upload

Reply #6 Posted by xanaxilovsky on 04/26/2011 22:07

Merci beaucoup pour vos réponses :). J'essaie de mettre en oeuvre les conseils de laurentj actuellement. Et merci pour l'exemple :)

 
Page
  1. Initialiser le contenu d'un champ upload