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 :

Comment obtenir un Event.target.files sans instruction input [API HTML5]


Sujet :

JavaScript

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre confirm�
    Homme Profil pro
    Inscrit en
    Mars 2013
    Messages
    122
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 122
    Par d�faut Comment obtenir un Event.target.files sans instruction input
    Bonjour,

    Comment obtenir un Event.target.files simplement en cliquant sur un image pour r�cup�rer chemin et nom complet ? Ou r�cup�rer ce chemin en tant qu'objet, �quivalent � cet Event.

    En fait se passer de l'instruction Input...

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    <input type="file" id="files" name="files[]" />
    <output id="list"></output>
     
    <script>
      function handleFileSelect(evt) {
        var files = evt.target.files;
     
        var output = [];
     
    f = files[0]
          output.push( f.name);
     
        document.getElementById('list').innerHTML = '<ul>' + output.join('') + '</ul>';
      }
     
     document.getElementById('files').addEventListener('change', handleFileSelect, false);
    </script>
    Merci

  2. #2
    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 : 55
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par d�faut
    En fait se passer de l'instruction Input...
    Qu'est-ce que tu appelles "l'instruction input" ?
    Pas de question technique par MP !
    Tout le monde peut participer � developpez.com, vous avez une id�e, contactez-moi !
    Mes formations video2brain : La formation compl�te sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'int�gration de JSFiddle et CodePen sur le forum

  3. #3
    Membre confirm�
    Homme Profil pro
    Inscrit en
    Mars 2013
    Messages
    122
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 122
    Par d�faut
    Bonjour,

    En fait disposer d'un Event.target.files ou son objet �quivalent en cliquant sur une image... donc sans saisir le chemin de cette image dans un Input...

  4. #4
    Membre �prouv�

    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 448
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 448
    Par d�faut
    Il faut cliquer sur une image pour pr�parer l'upload (ou autre) de cette m�me image ?
    Mais d'o� vient l'image � la base ?

  5. #5
    Membre confirm�
    Homme Profil pro
    Inscrit en
    Mars 2013
    Messages
    122
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 122
    Par d�faut
    Image charg�e en piochant dans un tableau de photo contenant chemin et nom complet pass�s en variable urlimage...

    Mais une fois affich�e, je souhaite disposer, en fen�tre modale, de diff�rentes informations tant en hors ligne qu'en ligne sur serveur dont les donn�es GPS issus des EXIF pr�sents dans la photo... ceci afin d'�viter d'utiliser une nouvelle base informations � charger depuis un fichier *.js contenant un autre tableau de donn�es.

    Je peux y acc�der avec le fameux chemin saisi dans Input, mais pas en le r�cup�rant dans urlimage

    Voici la fonction de chargement :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    // ==========================================================================
    // Permet de limiter la taille de l'image à la résolution écran si besoin
    // ==========================================================================
     
    function resize_Child(urlImage, mw, mh, ajustw, ajusth, idConteneur, MyPadding){
     
    // mw et mh contiennent largeur hauteur de la fenetre du navigateur affiché
    mw = mw - ajustw;
    mh = mh - ajusth;
     
    var photo = new Image();
    //  photo.src = urlImage;
    // Pour contrer Bug Cache IE qui ne se recharge pas sur F5
    photo.src = urlImage +"?" + new Date().getTime();
     
    	photo.onload = function() {
    	// Taille originelle de la photo
    	var imgW = photo.width;
    	var imgH = photo.height;
     
    if (imgW > mw || imgH > mh) {
     
    	ratioH = mh / imgH;
    	ratioW = mw / imgW;
     
    		if (ratioH < ratioW || imgH == imgW) {
    			imgH = Math.floor((imgH * ratioH) - 30);
    			imgW = Math.floor((imgW * ratioH) - 10);
    		} else {
    			imgH = Math.floor((imgH * ratioW) - 30);
    			imgW = Math.floor((imgW * ratioW) - 10);
    		}
     
    	// Nouvelle Taille proportionnelle en fonction taille écran
    	photo.width = imgW
    	photo.height= imgH
     
    }
     
    	// Générer image dans le div choisi
    	document.getElementById(idConteneur).appendChild(photo);
    	// Construire éléments du cadre une fois image chargée pour éviter flash sous IE 
    	document.getElementById(idConteneur).style.padding = MyPadding + "px";
    	document.getElementById(idConteneur).style.border = "2px solid #bbb";
    	document.getElementById(idConteneur).style.background = "#F4F4F4";
    	document.getElementById(idConteneur).style.color = "#777";
    	document.getElementById(idConteneur).style.boxShadow = "5px 5px 5px #888";
    	}
    }

  6. #6
    Expert confirm�
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 100
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 36
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activit� : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 100
    Par d�faut
    Dans le code que tu nous montres, urlImage est l'adresse d'une image se trouvant sur le Web. C'est tr�s diff�rent d'une image se trouvant sur la machine de l'utilisateur de ton site.

    Il faut savoir que JavaScript n'a pas le droit d'acc�der au syst�me de fichiers de l'utilisateur. L'input type file est le seul moyen pour ton site de r�cup�rer des fichiers. Cet input propose une fen�tre de navigation � l'utilisateur pour choisir le fichier � envoyer, et JavaScript n'a aucun contr�le sur cette fen�tre. De plus, si tu tentes de lire la valeur de l'input apr�s que l'utilisateur ait fait son choix, tu auras un faux chemin (typiquement C:\fakepath\image.jpg) pour emp�cher toute fuite d'information.

    Jusqu'� r�cemment, la seule chose qu'une page web pouvait faire avec un input type file, c'est envoyer le fichier au serveur. Aujourd'hui avec l'API FileReader, on peut manipuler le fichier c�t� client.

    Apr�s une br�ve recherche j'ai trouv� quelques librairies JS pour lire les donn�es EXIF :
    - une en pur JS : https://github.com/jseidelin/exif-js
    - un plugin jQuery : http://plugins.jquery.com/file-exif
    La FAQ JavaScript � Les cours JavaScript
    Touche F12 = la console → l�outil indispensable pour d�velopper en JavaScript !

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. R�ponses: 1
    Dernier message: 04/04/2013, 00h26
  2. R�ponses: 4
    Dernier message: 13/11/2007, 10h10
  3. [XHTML] input file sans champ input texte
    Par vny dans le forum Balisage (X)HTML et validation W3C
    R�ponses: 7
    Dernier message: 15/08/2007, 12h56
  4. [C#] Comment Obtenir un Refresh sans "scintillements&a
    Par fd59 dans le forum Windows Forms
    R�ponses: 8
    Dernier message: 07/12/2005, 17h36
  5. R�ponses: 1
    Dernier message: 26/10/2005, 18h22

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