IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[PHP-JS] Conserver les données d'un INPUT type="file"


Sujet :

Langage PHP

  1. #1
    Membre régulier Avatar de zoidy
    Inscrit en
    Avril 2006
    Messages
    184
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 184
    Points : 118
    Points
    118
    Par défaut [PHP-JS] Conserver les données d'un INPUT type="file"
    Salut à tous,

    J'ai besoin de vos lumières pour résoudre un petit problème tout simple (et dont je n'ai toujours pas trouvé la solution... oh le boulet ^^)

    Voilà, j'ai créé un formulaire et dedans s'y trouve un <INPUT type="file" ...> pour uploader une image.
    Jusque là tout va bien, mais si l'utilisateur fait une erreur lors la saisie, le formulaire se recharge avec les données précédemment saisies sauf pour cet <INPUT type="file" ...> !!!


    Pour les <INPUT type="text" ...>, il suffit de mettre par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <INPUT type="text" name="nom" size="35" value="<? if(isset($_POST['nom'])){echo $_POST['nom'];} ?>">

    Mais pour les <INPUT type="file" ...>, ce code ne marche pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <INPUT type="file" name="image" size="35" value="<? if(isset($_FILES['image']['name'])){echo $_FILES['image']['name'];} ?>">
    Si vous connaissez la solution, n'hésitez pas à répondre
    Merci

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Juin 2005
    Messages : 572
    Points : 716
    Points
    716
    Par défaut
    J'avais eu un problème un peu similaire pour faire un upload multiple en un seul envoi.

    Apparemment le poste client stocke le fichier sous un nom temporaire une fois le input file renseigné, je ne suis pas sur qu'il soit donc possible de récupérer le fichier, car meme si tu entres le nom dans le input file en php l'upload ne se fera pas.

    Toutefois, un controle javascript lors de l'envoi de la page ne pourrait pas convenir ?
    Tout pas mieux que tout le monde : évitez les questions techniques en mp sinon à quoi bon poster sur un forum ?

    Petite citation : "Le sage cherche la vérité, l'imbécile l'a déjà trouvée"

  3. #3
    Membre régulier Avatar de zoidy
    Inscrit en
    Avril 2006
    Messages
    184
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 184
    Points : 118
    Points
    118
    Par défaut
    En fait le javascript ne conviendrait pas vu que la page se recharge lors du click de l'utilisateur sur un bouton. Et au rechargement de la page, il faut conserver toutes les données saisies par l'utilisateur, et malheureusement ce put*** d'input file n'arrive pas a me conserver les données saisies

  4. #4
    Membre régulier Avatar de zoidy
    Inscrit en
    Avril 2006
    Messages
    184
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 184
    Points : 118
    Points
    118
    Par défaut
    Personne n'a eu ce problème !!!???

  5. #5
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Salut

    Je te propose une alternative, puisque ce champ n'est évidemment
    pas prévu pour ce que tu souhaites faire, et pour cause : cela supposerait que l'utilisateur aie à renvoyer ses fichiers à chaque fois qu'il y a une erreur !

    La solution est donc de déterminer quels fichiers ont déjà été envoyés correctement et de simplement afficher leur nom, éventuellement avec un lien pour les télécharger.
    Ainsi, en cas d'erreur, tu informes l'utilisateur qu'il a envoyé quelques fichiers avec succès (tu indiques la liste, éventuellement avec des liens pour télécharger les fichiers) mais que les autres n'ont pas pu être transmis (tu peux éventuellement mettre la liste aussi).

    C'est un peu ce que fait Gmail quand tu écris ton mail. Si tu mets une pièce jointe mais que tu n'envoies pas le mail tout de suite, il va se débrouiller pour l'envoyer tout seul en AJAX et il modifie ensuite la case input type="file" en simple texte avec un lien.

  6. #6
    Membre régulier Avatar de zoidy
    Inscrit en
    Avril 2006
    Messages
    184
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 184
    Points : 118
    Points
    118
    Par défaut
    Oki, donc il va falloir (encore) bidouiller... ^^

    En fait, lorsqu'il y a une erreur sur le fomulaire, je n'upload pas les images, et donc l'utilisateur doit à nouveau "ressaisir" l'image.
    Et d'après ce que tu dis Yogui, il faudrait que néanmoins je les upload pour ensuite indiquer à l'utilisateur que si il a fait une erreur, elles sont quand même uploader, et donc qu'il n'a pas à ressaisir les images.
    Mais imaginons que l'utilisateur fait des erreurs et décide alors de quitter le formulaire, il faut donc enlever les images uploadées, non !?

    Merci ^^

  7. #7
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 82
    Points : 78
    Points
    78
    Par défaut
    Tu peux toujours enregistrer les valeurs dans des variables sessions et une fois que tu reviens sur le formulaire a cause d'une tu les réaffiches...

  8. #8
    Membre éclairé Avatar de Death83
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 667
    Points : 878
    Points
    878
    Par défaut
    moi j'ai bidouiller un truc sur un de mes formulaires.

    En faites j'upload l'image et je stock son adresse dans une table temporaire. Apres si le formulaire est pas validé elle sera automatiquement effacé.
    manganimes (en construction) -
    zemanga

  9. #9
    Membre régulier Avatar de zoidy
    Inscrit en
    Avril 2006
    Messages
    184
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 184
    Points : 118
    Points
    118
    Par défaut
    Oki, je testerais un peu tout ca... mais si c'est plus une commodité vis-à-vis de l'utilisateur qu'un problème vital ^^

    Merci à tous

  10. #10
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Juin 2005
    Messages : 572
    Points : 716
    Points
    716
    Par défaut
    En fait je ne comprend pas pourquoi tu ne peux pas utiliser un script php pour tester si les valeurs de ton formulaire sont bonnes, excepté si l'un des tests passe par un test de doublon d'upload ou bien par une connexion a la base de données.
    Tout pas mieux que tout le monde : évitez les questions techniques en mp sinon à quoi bon poster sur un forum ?

    Petite citation : "Le sage cherche la vérité, l'imbécile l'a déjà trouvée"

  11. #11
    Membre régulier Avatar de zoidy
    Inscrit en
    Avril 2006
    Messages
    184
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 184
    Points : 118
    Points
    118
    Par défaut
    Ce n'est pas pour le test que ça foire; c'est juste que l'utilisateur, une fois qu'il a rempli le formulaire peut prévisualiser une image générée avec les infos saisies dans une popup, et à ce moment, le formulaire se recharge et je perd les infos contenues dans les input file... idem lorsqu'il fait une erreur de saisie (car j'aime pas faire les tests en javascript) ^^
    Donc après chaque rechargement du formulaire, l'utilisateur est obligé de rechercher à nouveau son fichier dans son pc par l'input file (ce qui est plutôt agaçant à la longue...) :s

  12. #12
    Membre chevronné
    Avatar de Bidouille
    Inscrit en
    Mars 2003
    Messages
    1 275
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 1 275
    Points : 1 992
    Points
    1 992
    Par défaut
    Le champ <INPUT FILE> n'est pas paramétrable pour des raisons de sécurité évidente.
    Il faut donc que tu trouves un autre moyen d'informer l'utilisateur que tu as bien son fichier.
    Rédacteur PHP / Delphi ADO / Novell / OpenOffice.org

    Inutile de m'envoyer vos questions par MP, je ne réponds que par le forum.

  13. #13
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Citation Envoyé par zoidy
    Oki, donc il va falloir (encore) bidouiller... ^^

    En fait, lorsqu'il y a une erreur sur le fomulaire, je n'upload pas les images, et donc l'utilisateur doit à nouveau "ressaisir" l'image.
    Et d'après ce que tu dis Yogui, il faudrait que néanmoins je les upload pour ensuite indiquer à l'utilisateur que si il a fait une erreur, elles sont quand même uploader, et donc qu'il n'a pas à ressaisir les images.
    Mais imaginons que l'utilisateur fait des erreurs et décide alors de quitter le formulaire, il faut donc enlever les images uploadées, non !?

    Merci ^^
    C'est tout à fait ce que je pensais
    Personne n'a dit que ce serait simple...
    Tu peux fonctionner avec une table, comme consillé ci-dessus, en gardant la date de la dernière màj comme base pour calculer quelles images sont obsolètes (session trop longue).

Discussions similaires

  1. Comment récupérer les données d'un input File en php
    Par mastajeet dans le forum Langage
    Réponses: 2
    Dernier message: 25/05/2011, 09h21
  2. [newbie] radio button + input: conserver les données
    Par fredlocus dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 21/10/2009, 10h46
  3. réaffichage d'une page en conservant les données
    Par tetedeturcq dans le forum ASP.NET
    Réponses: 3
    Dernier message: 04/04/2007, 16h48
  4. Conserver les données passées en POST
    Par kevinf dans le forum Langage
    Réponses: 24
    Dernier message: 03/11/2006, 00h39
  5. Réponses: 8
    Dernier message: 19/05/2005, 16h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo