Page 1 sur 1

Récupérer la valeur "file" dans un fomulaire chez

Posté : 17 janv. 2006, 18:01
par Vincent
Bonjour,

Je cherche à récupérer la valeur d'un type file lors d'un upload d'image, pas le lien temporaire de l'image ($_FILES['formulaire']['image']) mais le lien chez le client : c://windows/documents...
Je ne sais pas si je poste au bon endroit, parce que d'après mes recherches il me faut du javascript!

Code : Tout sélectionner

<? if (isset($_POST["nom"])) $nom_tmp = $_POST["nom"]; else $nom_tmp = ""; if (isset($_POST["categorie"])) $categorie_tmp = $_POST["categorie"]; else $categorie_tmp = ""; if (isset($_POST["lien_image"])) $lien_image = $_POST["lien_image"]; else $lien_image = ""; ?> Sélectionner l'image à ajouter : <form name="upload_image" enctype="multipart/form-data" method="POST" action="image.php" onClick="return lien_image()" > <label for="description">Nom de l'image </label><input type="text" name="nom" value="<? echo"$nom_tmp"; ?>" /><br /> <label for="image">Sélectionner l'image </label><input type="file" name="image" value="<? echo"$lien_image"; ?>" /><br /> <input type="hidden" name="lien_image" value="" /> <label for="type">Catégorie de l'image </label> <select type="text" name="categorie" /> <option></option> <option value="interieur" <? if ($categorie_tmp == "interieur") echo"selected"; ?> >Intérieur</option> <option value="exterieur" <? if ($categorie_tmp == "exterieur") echo"selected"; ?> >Extérieur</option> <option value="plats" <? if ($categorie_tmp == "plats") echo"selected"; ?> >Objets</option> </select><br /> <input type="submit" name="enregistrer" value="Envoyer l'image" /> <a href="image.php">Reset</a> </form> <script language="javascript"> function lien_image() { document.upload_image.lien_image.value = document.upload_image.image.value; } </script>
Donc ci-dessu mon formulaire, comportant 3 champs, j'aimerai si l'un de ces champs n'est pas rempli, réactualiser la page en disant qu'un des champs est vide mais garder les valeurs des champs déjà remplis, ca marche pour les autres champs mais pas pour le "file".
Mon idée est donc (après recherche) de donner la valeur du champs "file" à un champs caché grace a javascript. Mais celui-ci n'est pas bien interpreté.

Je ne connais pas trop javascript, si il existe un moyen php de récupérer cette donnée je suis preneur sinon javascript?

Merci beaucoup !
Vincent[/b]

Posté : 17 janv. 2006, 18:06
par Tictac
je ne sais pas si c'est possible , jamais essayé , si tu veux voir les infos envoyé avec ton $_FILES , fais un print_r($_FILES) et regarde si tu sais recupérer l'info que tu désires ;)

Posté : 17 janv. 2006, 18:56
par Cyrano
Ce qu'il faut faire, c'est valider en JavaScript et empêcher l'envoi si certains champs obligatoires ne sont pas remplis. Ajoute un évènement JavaScript onsubmit dans ta balise <form> qui appelle la validation du genre:
<form .... onsubmit="return valider();">
Il faut bien entendu que ta fonction valider retourne un booléen: true si c'est valide, false si ça ne l'est pas. Si ça retourne false, le clic sur le bouton submit restera sans effet et tes champs de type file resteront tels-quels avec les valeurs inscrites dedans.

Posté : 17 janv. 2006, 22:04
par Vincent
Oui, je connais bien toutes les fonctions de $_FILES :)
Il faudrait que je passe par une vérification total en javascript et ensuite encore une verification php (javascript étant facilement contournable).
Je cherchais un moyen d'éviter ca !
Si un modo peut déplacer le sujet dans le forum javascript, j'aurai pi etre plus de chance d'avoir une réponse :D

Merci encore, je continu mes recherches la dessu !

Posté : 17 janv. 2006, 22:31
par Vincent
J'ai fini mes recherches, alors je suis arrivé a passer le valeur par javascript en utilisant simplement :

Code : Tout sélectionner

onSubmit="document.upload_image.image_tmp.value = document.upload_image.image.value"
Mais la valeur s'affichait bien mais impossible de l'afficher dans le champs file.
Après une courte recherche sur le net, il est impossible de donner une valeur par défaut a "file", raison de sécurité, logique (on pourrait cacher des boutons et envoyer pleins de fichier en cachette ;o))!

Merci à vous,
Vincent