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

HTML Discussion :

[HTML5] Lire un fichier


Sujet :

HTML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2007
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 163
    Par défaut [HTML5] Lire un fichier
    Bonjour,

    Une mission m'a été confiée, je voudrais savoir si la solution existe ou non. Le but est de lire le contenu de deux fichiers sur une web application, il m'est demandé de moderniser cette dernière.

    Un serveur reçoit régulièrement des couples de fichiers, une web application développée en Java avec le framework Struts 1.3.10 permet de sélectionner les deux fichiers, situés dans deux répertoires différents. Un formulaire contient alors deux tags <input type="file" .../> et envoyait le tout à la servlet qui récupérait les répertoires des fichiers et faisaient le traitement.Les utilisateurs disposaient d'IE8 sous Windows 7, le développeur de l'époque utilisait l'ActiveX qui permettait de récupérer le chemin complet du fichier.

    Entre-temps, le serveur a été migré de Windows XP en Windows 10, l'application ne fonctionne plus car le répertoire n'est plus transmis. Il m'est donc demandé de corriger tout cela.

    Je voudrais donc modifier l'application côté client : je parle des JSP donc du HTML produit. A priori, en passant sur HTML5 et en utilisant des API spécifiques, j'aurais peut-être une solution. Problème, je ne connais pas trop le JavaScript, j'ai bien vu pas mal d'exemples sur le Web, a priori il n'est plus possible de transmettre à la servlet le chemin complet du fichier... Me confirmez-vous cela ?

    Sinon, il y aurait visiblement la possibilité de faire des "drag and drop" des fichiers, un bout de code en JavaScript mettrait le contenu des fichiers dans des tag <textarea>, et le tour serait joué : j'aurais besoin que l'on me dise si c'est possible... ou pas ?

    Merci par avance.

  2. #2
    Membre confirmé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2007
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 163
    Par défaut
    Bonjour, j'ai trouvé une solution après quelques recherches sur Internet, ouf !!

  3. #3
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Hello,

    je t'avoue que la solution retenue m'intéresse.

    Le coup du drag-and-drop devrait marcher, mais je vois mal autre chose.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Membre confirmé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2007
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 163
    Par défaut
    Bonsoir,

    J'ai trouvé une solution peu conviviale qui charge le contenu du fichier via un javascript et qui le place dans un tag caché.

    Voici un bout de la JSP :
    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
     
    <s:form action="compare" theme="simple">
    	<table>
    		<tr>
    			<td>
    				<s:file name="nomfichier" id="fic" value="" onchange="LireFichier(this.id);"/>
    			</td>
    		</tr>
    		<tr>
    			<td>
    				<s:hidden name="contenu" id="ficcontenu" value=""/>
    			</td>
    			</tr>
    		<tr>
    			<td>
    				<s:submit value="Chargement"/>
    			</td>
    		</tr>
    	</table>
    </s:form>
    Et le code JavaScript :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    function LireFichier(nom) {
    	var 
    		f = document.getElementById(nom).files[0],
    		ch = new FileReader();
     
    	ch.readAsText(f);
     
    	ch.onloadend = function (e) {
    		if(e.target.readyState == FileReader.DONE)
    		document.getElementById(nom+"contenu").value = e.target.result;
    	}
    }

    Ma servlet reçoit bien le contenu du fichier, plus besoin de s'occuper du répertoire où est situé le fichier.

    Je suis en train d'étudier la possibilité de faire un drag&drop. Dès que ce sera au point, je posterai ma solution ici.

  5. #5
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Ok.... Du coup j'ai aucune idée de ce que pouvait être ton problème. Faire en sorte qu'une servlet (ou n'importe quoi côté serveur) reçoive le contenu d'un fichier, c'est exactement à ça que sert un <input type=file> .
    Pas besoin de JavaScript ou de reader ou de rien d'autre. C'est juste un formulaire normal -_-°.

    Les choses deviennent plus compliquées quand on a besoin de traiter un groupe de fichiers, mais là...
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre confirmé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2007
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 163
    Par défaut
    Bonsoir thelvin,

    J'ai bien peur de découvrir quelque chose . Quand je prends le tag <input type=file name=truc>, l'attribut "truc" me transmet le nom du fichier et non son contenu. Si tu me montres que je peux directement recevoir dans ma servlet le contenu du fichier depuis ce tag HTML (j'utilise le framework Struts2), je suis preneur. J'ai pourtant cherché sur le net, en particulier ici... je n'ai rien trouvé de tel.

    Dans mon cas, il s'agit de lire deux fichiers pour croiser leurs contenus. Si je peux me passer de Javascript, je prends tout de suite ! Merci !

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

Discussions similaires

  1. [Servlet][EJB]lire un fichier à partir de mon bean
    Par kimausoleil dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 13/02/2004, 14h26
  2. [MFC] lire un fichier en int
    Par Kevgeii dans le forum MFC
    Réponses: 3
    Dernier message: 23/01/2004, 09h32
  3. Réponses: 5
    Dernier message: 11/01/2004, 20h17
  4. Lire un fichier de 50 gb
    Par Maryves dans le forum MFC
    Réponses: 2
    Dernier message: 08/01/2004, 14h08
  5. Lire le fichier du port série
    Par saibe dans le forum Linux
    Réponses: 7
    Dernier message: 09/04/2003, 09h29

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