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

AJAX Discussion :

[AJAX] File Upload Ajax paramètres.


Sujet :

AJAX

  1. #1
    Membre averti Avatar de Pymento
    Homme Profil pro
    Ingé. Info.
    Inscrit en
    Janvier 2008
    Messages
    366
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingé. Info.

    Informations forums :
    Inscription : Janvier 2008
    Messages : 366
    Points : 329
    Points
    329
    Par défaut [AJAX] File Upload Ajax paramètres.
    Bonjour,
    j'ai vu que ce sujet à déjà été traité a plusieurs reprises, mais mon pb est sensiblement différent.
    J'ai cherché une solution simple et maîtrisée mais en vain ! je tombe soit sur du multi upload, soit sur une méthode trop rigide pour me permettre de faire ce que je veux:

    Je souhaite pouvoir uploader en ajax synchrone, n'importe quel fichier sans barre de chargement ni rien, mais simplement il faut que je puisse passer à mon php des variables javascript qui vont changer selon ou on a cliqué précédemment dans la page. (car en plus de l'upload, je dois faire une insertion particulière dans une bdd)

    Alors je sais qu'il faut passer par une iframe, j'ai testé plein de script mais aucun ne correspond exactement à mon besoin, quitte à utiliser JQuery, je pense que c'est le mieux, je souhaite simplement:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <input type='file' /><input type='button' onclick="ajax_upload()">
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    function ajax_upload(){
    xhr.(POST, 'upload.php?id='+var_globable+', false);
    xhr.send()
     
    }
    C'est du pseudo code, c'est juste pour bien exprimer mon besoin. Je veux exactement la même articulation. Tout les scripts jquery upload que j'ai pu voir sont trop évolués, je veux simplement les 2/3 lignes qui fassent un simple upload !

    Merci d'avance.

  2. #2
    Membre averti Avatar de Pymento
    Homme Profil pro
    Ingé. Info.
    Inscrit en
    Janvier 2008
    Messages
    366
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingé. Info.

    Informations forums :
    Inscription : Janvier 2008
    Messages : 366
    Points : 329
    Points
    329
    Par défaut
    Bon, j'ai ça :


    html:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <iframe src="about:blank;" name="Ifr" width="0px" height="0px" style="visibility:hidden;"></iframe>
     
    <form method="post" enctype="multipart/form-data" action="upload.php" target="Ifr">
     
    <input type="file" name="fichier" size="30">
     
    <input type="submit" name="upload" value="Uploader">
    php:
    <?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $chemin_destination = "../../";
     
    		if(!move_uploaded_file($_FILES['fichier']['tmp_name'], $chemin_destination.$_FILES['fichier']['name']))
    			{
    				exit("Impossible de copier le fichier dans $chemin_destination");
    			}
    ?>
    ça fonctionne, dans la simplicité, par contre maintenant, je souhaiterai arriver à passer une variable dans mon php... comment faire..?
    Peut être à l'aide du javascript modifier mon attribut action de mon form en lui concaténant mon paramètre?

  3. #3
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2009
    Messages : 875
    Points : 1 313
    Points
    1 313
    Par défaut
    t'as essayé une balise input hidden? il passerai avec le POST comme ca. Enfin c'est pas super sur pour une utilisation grand public

  4. #4
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <iframe src="about:blank;" name="Ifr" width="0px" height="0px" style="visibility:hidden;"></iframe>

    C'est quoi l'intérêt de cette iframe ???
    Et ton formulaire, c'est bien, mais quel rapport avec AJAX

    Sinon, oui, pour passer un paramètre, utilise un input hidden.
    Enfin c'est pas super sur pour une utilisation grand public
    Oui, mais en même temps, la seule méthode sure pour passer des informations du client au serveur, c'est de ne pas passer d'information du client au serveur !

  5. #5
    Membre averti Avatar de Pymento
    Homme Profil pro
    Ingé. Info.
    Inscrit en
    Janvier 2008
    Messages
    366
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingé. Info.

    Informations forums :
    Inscription : Janvier 2008
    Messages : 366
    Points : 329
    Points
    329
    Par défaut
    Oui exact même si la solution d'aller changer l'attribut "action" marche, c'est plus propre de passer par un hidden.

    pour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <iframe src="about:blank;" name="Ifr" width="0px" height="0px" style="visibility:hidden;"></iframe>
    En gros d'après ce que je comprend, le target de mon form, va dans l'iframe, du coup ça n'ouvre pas ou ne recharge pas de nouvelle page et l'upload passe pour une sorte d'ajax

  6. #6
    Membre habitué
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2006
    Messages : 121
    Points : 127
    Points
    127
    Par défaut
    Oui c'est via une IFrame que fonctionnent la plupart des fileUpload Ajax puisque le JavaScript n'a pas le droit d'accéder aux fichiers du client. En gros c'est le navigateur qui envoie le fichier et non le JS.

    Par contre avec cette méthode, si tu veux l'implémenter toi même, attention au retour de la requête parce qu'elle va se retrouver dans l'IFrame. Notamment pour les messages d'erreur lors de l'upload.

  7. #7
    Candidat au Club
    Inscrit en
    Janvier 2011
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    comment je peux faire l'aplaud en J2EE

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AJAX] Erreur 500 Ajax+php upload file sur serveur ubuntu
    Par Jordan-Tess dans le forum jQuery
    Réponses: 0
    Dernier message: 02/12/2014, 11h23
  2. [Ajax] File Upload avec taille limite
    Par Kanithael dans le forum Struts 1
    Réponses: 0
    Dernier message: 25/03/2010, 18h30
  3. Réponses: 5
    Dernier message: 14/09/2009, 09h37
  4. [AJAX] Multi upload Ajax
    Par popovitch130 dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 22/05/2008, 18h29
  5. Réponses: 9
    Dernier message: 10/01/2007, 08h31

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