J'essaie d'écrire un simple lecteur de fichier texte en créant une fonction qui prend le chemin du fichier et convertit chaque ligne de texte en un tableau de caractères, mais cela ne fonctionne pas.
function readTextFile() {
var rawFile = new XMLHttpRequest();
rawFile.open("GET", "testing.txt", true);
rawFile.onreadystatechange = function() {
if (rawFile.readyState === 4) {
var allText = rawFile.responseText;
document.getElementById("textSection").innerHTML = allText;
}
}
rawFile.send();
}
Qu'est-ce qui ne va pas ici?
Cela ne semble toujours pas fonctionner après avoir changé un peu le code d'une révision précédente et maintenant cela me donne une XMLHttpRequest
exception 101.
J'ai testé cela sur Firefox et cela fonctionne, mais dans Google Chrome, cela ne fonctionne tout simplement pas et il me donne toujours une exception 101. Comment puis-je faire fonctionner cela non seulement sur Firefox, mais aussi sur d'autres navigateurs (en particulier Chrome )?
status
de0
même que200
.Réponses:
Vous devez vérifier l'état 0 (comme lorsque vous chargez des fichiers localement avec
XMLHttpRequest
, vous ne recevez pas d'état renvoyé car il ne provient pas d'unWebserver
)Et spécifiez
file://
dans votre nom de fichier:la source
file:///User/Danny/Desktop/javascriptWork/testing.txt
dans la barre d'url de votre navigateur et voyez si vous pouvez voir le fichier ..true
. S'il s'agissait d'unelocal
recherche simple, la définition de async surfalse
est ok, maisonreadystatechange
n'est pas nécessaire tant qu'elle est définie sur false. Voici la documentation: w3schools.com/ajax/ajax_xmlhttprequest_send.aspVisitez Javascripture ! Et allez dans la section readAsText et essayez l'exemple. Vous serez en mesure de savoir comment la readAsText fonction de FileReader fonctionne.
la source
Après l'introduction de fetch api en javascript, la lecture du contenu du fichier ne pouvait pas être plus simple.
lecture d'un fichier texte
lecture d'un fichier json
Mise à jour 30/07/2018 (avertissement):
Update-2 (avertissement):
la source
Referer
». Je suppose que cela signifie au revoir aux bons ol'FileReaders et HttpRequests (et je ne les manquerai pas un peu;)Fetch API cannot load file:///C:/Users/path/to/file/file.txt. URL scheme must be "http" or "https" for CORS request.
la source
var reader = new FileReader();
partreader.readAsBinaryString(..)
- il lit le contenu de mon fichier texte. Propre, élégant, fonctionne comme un charme. Meilleure réponse dans ce fil pour moi - merci!Jon Perryman,
Oui js peut lire les fichiers locaux (voir FileReader ()) mais pas automatiquement: l'utilisateur doit passer le fichier ou une liste de fichiers au script avec un html
<input type=file>
.Ensuite, avec js, il est possible de traiter (exemple de vue) le fichier ou la liste des fichiers, certaines de leurs propriétés et le contenu du ou des fichiers.
Ce que js ne peut pas faire pour des raisons de sécurité, c'est d'accéder automatiquement (sans la saisie de l'utilisateur) au système de fichiers de son ordinateur.
Pour permettre à js d'accéder automatiquement au fs local, il faut créer non pas un fichier html contenant js mais un document hta.
Un fichier hta peut contenir js ou vbs à l'intérieur.
Mais l'exécutable hta ne fonctionnera que sur les systèmes Windows.
Il s'agit d'un comportement de navigateur standard.
Google Chrome a également travaillé sur l'API fs, plus d'infos ici: http://www.html5rocks.com/en/tutorials/file/filesystem/
la source
Vous pouvez déjà l'essayer, tapez "false" comme suit:
la source
Essayez de créer deux fonctions:
la source
autre exemple - mon lecteur avec la classe FileReader
la source
Solution moderne:
Lorsque l'utilisateur télécharge un fichier texte via cette entrée, il sera enregistré sur la console. Voici une démo jsbin qui fonctionne .
Voici une version plus détaillée:
Actuellement (janvier 2020), cela ne fonctionne que dans Chrome et Firefox, vérifiez ici la compatibilité si vous lisez ceci à l'avenir: https://developer.mozilla.org/en-US/docs/Web/API/Blob/text
Sur les anciens navigateurs, cela devrait fonctionner:
la source
Utilisation de la fonction Fetch et async
la source
Cela pourrait aider,
la source
En ajoutant à certaines des réponses ci-dessus, cette solution modifiée a fonctionné pour moi.
....
....
la source
- lire le texte du fichier à partir de javascript
- le texte du journal de la console à partir du fichier à l'aide de javascript
- Google Chrome et Mozilla Firefox
dans mon cas, j'ai cette structure de fichiers:
le résultat console.log:
la source
la source
Obtenez les données du fichier local dans la charge js (data.js):
fichier de data.js comme:
dynamic unixTime queryString empêche la mise en cache.
AJ travaille sur le Web http: //.
la source
Les appels AJAX locaux dans Chrome ne sont pas pris en charge en raison de la même politique d'origine.
Le message d'erreur sur Chrome est le suivant: "Les demandes d'origine croisée ne sont pas prises en charge pour les schémas de protocole: http, data, chrome, chrome-extension, https."
Cela signifie que Chrome crée un disque virtuel pour chaque domaine pour conserver les fichiers servis par le domaine à l'aide des protocoles http / https. Tout accès aux fichiers en dehors de ce disque virtuel est limité selon la même politique d'origine. Les requêtes et réponses AJAX se produisent sur http / https, donc ne fonctionneront pas pour les fichiers locaux.
Firefox ne met pas une telle restriction, donc votre code fonctionnera avec bonheur sur Firefox. Cependant, il existe également des solutions de contournement pour Chrome: voir ici .
la source
Vous pouvez importer ma bibliothèque:
ensuite, la fonction
fetchfile(path)
renverra le fichier téléchargéVeuillez noter: sur Google Chrome si le code HTML est local, des erreurs apparaîtront, mais l'enregistrement du code HTML et des fichiers en ligne puis l'exécution du fichier HTML en ligne fonctionnent.
la source
Afin de lire un texte de fichier local via
JavaScript
Chrome, le navigateur Chrome doit s'exécuter avec l'argument--allow-file-access-from-files
pour autoriser JavaScript à accéder au fichier local, puis vous pouvez le lire en utilisantXmlHttpRequest
comme suit:la source
Comment lire un fichier local?
En l'utilisant, vous chargerez un fichier par loadText () puis JS attendra de manière asynchrone jusqu'à ce que le fichier soit lu et chargé après cela, il exécutera la fonction readText () vous permettant de continuer avec votre logique JS normale (vous pouvez également écrire un try catch bloc sur la fonction loadText () dans le cas où une erreur survient) mais pour cet exemple, je le garde au minimum.
la source
Je sais, je suis en retard à cette fête. Permettez-moi de vous montrer ce que j'ai.
Ceci est une simple lecture du fichier texte
J'espère que ça aide.
la source