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

JavaScript Discussion :

Envoyer une image via un $_FILES


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2011
    Messages : 20
    Points : 11
    Points
    11
    Par défaut Envoyer une image via un $_FILES
    Bonjour,

    J'aimerais envoyer une image à une page php (en vérité c'est un morceau de page php chargé dans un div grâce à un .load() javascript), et la réceptionner dans $_FILES, mais je n'arrive pas à trouver la syntaxe exacte sur internet...

    Voici la fonction javascript à laquelle le formulaire fait appel grâce à un bouton onClick :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    	function envoi() {
    		if (document.formulaireenvoi.texte.value != "" && document.formulaireenvoi.titre.value != ""){
    			$('#nomdudiv').load('messageenvoye.php', { 
    				'texte' : document.formulaireenvoi.texte.value , 
    				'titre' : document.formulaireenvoi.titre.value ,  
    				'file' : document.formulaireenvoi.file.value
    			} );	
    		}
    	}
    J'arrive à récupérer le texte et le titre avec $_POST['texte'] et $_POST['titre'], mais pas l'image avec $_FILES['file'], même en remplaçant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.formulaireenvoi.file.value
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.querySelector('#file')
    ou par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.querySelector('#file').files[0]
    Si quelqu'un sait comment résoudre l'erreur, je suis tout ouïe.

  2. #2
    Membre émérite
    Avatar de Kaamo
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    1 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 165
    Points : 2 778
    Points
    2 778
    Par défaut
    Pour des raisons de sécurité, tu ne peux pas faire document.formulaireenvoi.file.value !

    Le fameux upload de fichier sans recharger la page ... Plusieurs solutions s'offrent à toi, voici des pistes à creuser :

    - un plugin jQuery : jQuery File Upload

    - La nouvelle API HTML5 : File API (Compatible Chrome 13+, Firefox 3.6+, Safari 6+, Opéra 11.1+, IE 10) avec polyfill pour la rétrocompatibilité

    - Du Flash ... mais bon, à proscrire

    - La bonne vieille méthode : passer par une iframe bien crade pour que ça soit compatible partout

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function formUpload(result) {
      console.log("Upload OK:", result);
    }
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <form target="upload_target" action="upload.XXX" enctype="multipart/form-data" method="post">
    File: <input name="mon_fichier" type="file" />
    <input name="soumettreBouton" type="submit" value="OK" />
    </form>
    <iframe id="upload_target" name="upload_target" src="#" style="width:0; height:0" />
    Le serveur traite le fichier selon le langage choisi et renvoi ça dans l'iframe à la fin de l'upload pour que l'utilisateur sache que c'est uploadé :
    window.top.window.formUploadCallback(<?php echo $result; ?>);

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2011
    Messages : 20
    Points : 11
    Points
    11
    Par défaut
    Merci beaucoup, je vais essayer tout ça !

Discussions similaires

  1. Envoyer une image via socket
    Par antasalam dans le forum Windev Mobile
    Réponses: 1
    Dernier message: 19/06/2014, 15h05
  2. envoyer une image via un formulaire vers son mail
    Par cdevl32 dans le forum Langage
    Réponses: 2
    Dernier message: 02/09/2007, 20h52
  3. [GD] Envoyer une image générée avec GD par mail
    Par firejocker dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 27/12/2005, 15h42
  4. Réponses: 9
    Dernier message: 12/09/2005, 13h24
  5. [FLASH MX] Envoyer une image par e-mail
    Par skyjoe dans le forum Flash
    Réponses: 2
    Dernier message: 22/10/2004, 18h11

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