8721 sujets

Développement web côté serveur, CMS

Bonjour à tous,
C'est mon premier appel sur un forum.
J'ai créé un formulaire de création de séance d'entrainement (football). Il comporte plusieurs champs et notamment un champ de pièce jointe (image). En cas de mauvaise saisie d'un champ ou de champ vide, je rafraichi le formulaire en conservant l'ensemble des champs valides. Le problème est pour le champ "pièce jointe". Je ne trouve pas la solution pour recharger le fichier déjà saisi par l'utilisateur.
Voici le code du formulaire :

<h4>Fichier en pièce jointe</h4>
<p><em>Pour une meilleure compréhension de l'exercice, joindre un schéma de votre exercice (je n'accepte que les formats : .jpg, .jpeg, .gif, .png).</em></p>
<input type="file" name="fic" />
</br>
<input type="hidden" name="MAX_FILE_SIZE" value="<?php echo MAX_FILE_SIZE; ?>" />


J'attends avec une réponse de votre part.
Bonjour,
C'est impossible, si tu as un champ file et que tu rafraichis ta page, tu perdra l'info quoiqu'il arrive.

Désolé...
Bonne journée à toi
Bonjour,
Pourtant il me semble que l'information doit être récupérable sous forme d'un Array ?
Sinon, j'avais pensé en récupérant le chemin de téléchargement et les caractéristiques du fichier sous de forme d'une variable.
Tenez moi au courant.
Bonsoir,

Vu de ma fenêtre, une solution consisterait à faire une vérification en aval, côté client, via javascript, lorsque le formulaire est validé.
Si tous les champs ne sont pas remplis, ou s'il y a une erreur, un message le signale, les champs et le formulaire ne sont pas soumis, la page n'est pas rechargée et le chemin d’accès au fichier devrait ne pas se vider.
Mais je dis peut-être des bêtises Smiley lol
bonsoir à tous,
J'ai changé d'option. Du coup je récupère le nom du fichier téléchargé par le client. J'annonce alors au client qu'il doit recharger son fichier suite à l'erreur de saisie.
Je ne marque pas ce sujet "résolu" car je ne désespère pas de trouver LA solution un jour.

Voici le code de rechargement de la page :

	echo ('<fieldset>');
	echo ('<legend>Soumettre l\'entrainement</legend>');
	echo ('<p>Rappel : ( <span class="pflichtfeld">*</span> ) ces champs sont obligatoires.</p>');
		if ($_FILES['fic']['error'] == UPLOAD_ERR_NO_FILE) 
		{
		//Aucun fichier envoyé
		$fichier="";
		$nom_fic="";
		}
		else
		{
		$nom_fic=$_FILES['fic']['name'];
		$fichier="Veuillez recharger votre image: ";
		echo ('<div class="erreur_ent"><img src="images/design/attention.png" alt="Attention" title="Recharger le fichier !!!"><span>...</span>'.$fichier.'</div>'.$nom_fic.'');
		}	
	echo ('<input type="submit" name="envoyer" value="Envoyer ..."/>');
	echo ('</br>');
	echo ('</br>');   					
	echo ('</fieldset>');

Merci pour votre aide.
a écrit :
J'annonce alors au client qu'il doit recharger son fichier suite à l'erreur de saisie.

Pas très user-friendly comme solution.

Si tu ne fais rien de spécial, le fichier n'est uploadé qu'une seule fois certes, mais de la même manière que tu devrais réafficher les données erronnées précédemment saisies, tu pourrais afficher un aperçu de ce que l'utilisateur a déjà envoyé à la première tentative. S'il ne renvoie rien à la deuxième, tu gardes le fichier; s'il renvoie un autre, tu le remplaces.