JavaScript et les fichiers

Résolu
begueradj
Messages postés
273
Date d'inscription
dimanche 4 octobre 2009
Statut
Membre
Dernière intervention
24 juin 2014
- Modifié par begueradj le 29/04/2014 à 16:28
begueradj
Messages postés
273
Date d'inscription
dimanche 4 octobre 2009
Statut
Membre
Dernière intervention
24 juin 2014
- 30 avril 2014 à 07:51
Bonjour,

Est-ce que
JavaScript
permet les opérations d'écriture et de lecture sur un fichier texte, par exemple ?

Merci pour toute éventuelle réponse
--

3 réponses

jordane45
Messages postés
35477
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
22 mai 2022
356
29 avril 2014 à 16:43
Bonjour,

Déjà... tout dépend de l'emplacement de ton fichier texte.
Si tu souhaites écrire/lire un fichier se trouvant sur le serveur la réponse est NON (javascript s'executant côté client).

Ensuite.. tout dépend également de ton navigateur.
La solution la plus répandue utilise un ActiveX (non compatible avec fireFox)
par exemple :
function WriteToFile()
{
var fso = new ActiveXObject("Scripting.FileSystemObject");
var s = fso.CreateTextFile("C:\\NewFile.txt", true);
var text=" blablabla....et bla ! ";
s.WriteLine(text);
s.Close();
}


Pour FireFox il semble que cela soit faisable d'une autre manière (non testée par mes soins...)
http://www.codeproject.com/Questions/556268/Writingplustoplustextplusfileplusnotplusworkingplu

1
begueradj
Messages postés
273
Date d'inscription
dimanche 4 octobre 2009
Statut
Membre
Dernière intervention
24 juin 2014
9
29 avril 2014 à 16:50
Merci !!
0
@karamel
Messages postés
1807
Date d'inscription
vendredi 9 mai 2008
Statut
Modérateur
Dernière intervention
5 mai 2022
144
29 avril 2014 à 16:52
pour firefox chrome ie9 et > pour lire un fichier il faut utiliser filereader par contre il ne sera pas possible d'enregitrer le fichier sur le disque dur au mieux on peut enregistrer le fichier avec localstorage mais il sera accessible uniquement avec le navigateur

petite teste pour la lecture d'un fichier

 <!doctype html>
    <html lang="fr">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <head>
    <style type="text/css">
	
	body{
		font-family:Verdana, Geneva, sans-serif;
		background-color:#b2bdc6;
		}
	
	#fileinput{
	position:fixed;
	top:3%;
	}
	
	.box{
    background-color:gray;
    height:80%;
    width:20%;
	top:10%;
    position:fixed;
	float:left;
    border:1px ridge #aaa;
    -moz-box-shadow: 10px 10px 10px #212121;
    -webkit-box-shadow: 10px 10px 10px #212121;
    box-shadow: 10px 10px 10px #616161;
    text-align:center;
    }
	
    textarea{
    width:100%;
    height:150px;
    margin:auto;
	margin-bottom:15px;
	border:2px ridge #aaa;
	border-color:#585858;
    -moz-box-shadow: 10px 10px 10px #212121;
    -webkit-box-shadow: 10px 10px 10px #212121;
    box-shadow: 10px 10px 10px #616161;
    }
    #conteneur{
    width:70%;
	float:right;
	margin-right:40px;
    }
    div{
    margin:auto;
    }
    </style>
    <script type="text/javascript">
	
    var compteur=0
	
    function dragenter(e) {
    e.stopPropagation();
    e.preventDefault();
    }
    function drop(e) {
    
    if (!e) {
    var fichier = document.getElementById('fileinput').files;
    }
    else {
    var fichier = e.dataTransfer.files;
    }
    
    charger(fichier)
    }
	
	
    function charger(fichier){
   
    var dv=document.createElement('textarea')
    
	var charge=new FileReader();
	
    charge.readAsText(fichier[compteur]);
	
    charge.onloadend = function(e){
    dv.value = e.target.result;
	
    if (compteur<fichier.length-1) {
    compteur++;
    charger(fichier);
    }
    else{
    compteur=0;
    }
	document.getElementById('conteneur').appendChild(dv);
    }
	
    }
    </script>
    </head>
    <body>
    <div class='box'
    ondragenter="event.stopPropagation(); event.preventDefault();"
    ondragover="event.stopPropagation(); event.preventDefault();"
    ondrop="event.stopPropagation(); event.preventDefault(); drop(event);">
    boite a drop
    </div>
    <br>
    <div>
    <input type='file' multiple='multiple' id='fileinput' onchange='drop()'>
	</div>
    <br>
    <div id='conteneur'></div>
    </body>
    </html>

1
begueradj
Messages postés
273
Date d'inscription
dimanche 4 octobre 2009
Statut
Membre
Dernière intervention
24 juin 2014
9
30 avril 2014 à 07:51
Merci pour les informations précieuses, Kamza
0
EnguerrandP
Messages postés
295
Date d'inscription
vendredi 26 avril 2013
Statut
Membre
Dernière intervention
15 juillet 2015
1
29 avril 2014 à 16:33
Je croit que oui avec la méthode filltext()
va voir sa sur openclassroom.
-1
begueradj
Messages postés
273
Date d'inscription
dimanche 4 octobre 2009
Statut
Membre
Dernière intervention
24 juin 2014
9
29 avril 2014 à 16:48
Merci mais filltext() n'a rien à voir avec l'écriture dans un fichier.
0