Lecture du fichier texte côté client à l'aide de Javascript

Je souhaite lire un fichier (côté client) et obtenir le contenu dans un tableau. Ce ne sera qu'un seul fichier. J'ai le suivant et cela ne fonctionne pas. 'Query_list' est une zone de texte où je souhaite afficher le contenu du fichier

<input type="file" id="file" name="file" enctype="multipart/form-data"/> <script> document.getElementById('file').addEventListener('change', readFile, false); function readFile (evt) { var files = evt.target.files; var file = files[0]; var fh = fopen(file, 0); var str = ""; document.getElementById('query_list').textContent = str; if(fh!=-1) { length = flength(fh); str = fread(fh, length); fclose(fh); } document.getElementById('query_list').textContent = str; } </script> 

Comment dois-je m'en occuper? Finalement, je souhaite boucler le tableau et exécuter certaines requêtes SQL. Aidez-nous. Merci

Si vous souhaitez lire des fichiers sur le client à l'aide de FileReader HTML5 , vous devez utiliser Firefox, Chrome ou IE 10+. Si cela est vrai, l'exemple suivant lit un fichier texte sur le client.

Votre exemple tente d'utiliser fopen dont je n'ai jamais entendu parler (sur le client)

http://jsfiddle.net/k3j48zmt/

  document.getElementById('file').addEventListener('change', readFile, false); function readFile (evt) { var files = evt.target.files; var file = files[0]; var reader = new FileReader(); reader.onload = function(event) { console.log(event.target.result); } reader.readAsText(file) } 

Pour le support IE <10, vous devez rechercher un objet ActiveX comme ADO.Stream Scripting.FileSystemObject http://msdn.microsoft.com/en-us/library/2z9ffy99(v=vs.85).aspx, mais vous ' Je me heurte à un problème de sécurité. Si vous exécutez IE permettant à tous les objets ActiveX (pour votre site web), cela devrait fonctionner.

Il existe une API de fichiers HTML5 pour accéder aux fichiers locaux sélectionnés par l'utilisateur, sans les télécharger partout.

C'est une fonctionnalité tout à fait nouvelle, mais soutenue par la plupart des navigateurs modernes .

Je recommande fortement de vérifier cet excellent article à voir, comment vous pouvez l'utiliser.

Il y a un problème avec cela, vous ne pouvez pas lire de gros fichiers (~ 400 Mo et plus) parce que les fonctions FileAPI directes tentent de charger du fichier entier dans la mémoire.

Si vous devez lire de gros fichiers ou rechercher quelque chose ou naviguer par index de ligne, vérifiez mon LineNavigator , qui vous permet de lire, de naviguer et de rechercher dans des fichiers de n'importe quelle taille. Essayez-le dans jsFiddle! C'est très facile à utiliser:

 var navigator = new FileNavigator(file); navigator.readSomeLines(0, function linesReadHandler(err, index, lines, eof, progress) { // Some error if (err) return; // Process this line bucket for (var i = 0; i < lines.length; i++) { var line = lines[i]; // Do something with it } // End of file if (eof) return; // Continue reading navigator.readSomeLines(index + lines.length, linesReadHandler); }); 

Eh bien, j'ai été battu à la réponse mais c'est différent:

 <input type="file" id="fi" /> <button onclick="handleFile(); return false;">click</button> function handleFile() { var preview = document.getElementById('prv') var file = document.getElementById('fi').files[0]; var div = document.body.appendChild(document.createElement("div")); div.innerHTML = file.getAsText("utf-8"); } 

Cela fonctionnera dans FF 3.5 – 3.6, et c'est tout. FF 4 et WebKit, vous devez utiliser FileReader comme mentionné par Juan Mendes.

Pour IE, vous pouvez trouver une solution Flash.

Je travaille là-bas, mais je voulais toujours contribuer parce que cela fonctionne bien: vous pouvez utiliser le fichier filepicker.io read api pour faire exactement cela. Vous pouvez passer un élément dom et récupérer le contenu, pour le texte ou les données binaires, même dans IE8 +