190 votes

Accès aux fichiers locaux avec javascript

Existe-t-il des manipulations de fichiers locales effectuées avec JavaScript? Je recherche une solution pouvant être réalisée sans aucune installation telle que celle nécessitant AIR.

Plus précisément, j'aimerais lire le contenu d'un fichier et l'écrire dans un autre fichier. À ce stade, je ne suis pas inquiet à propos de l'obtention d'autorisations, je suppose simplement que j'ai déjà des autorisations complètes sur ces fichiers.

162voto

Horst Walter Points 4075

Juste une mise à jour des fonctionnalités de HTML5 http://www.html5rocks.com/en/tutorials/file/dndfiles/ Cet excellent article va vous expliquer en détail le local d'accès au fichier en Javascript. Résumé de l'article ci-dessus:

La spécification fournit plusieurs interfaces pour l'accès à des fichiers à partir d'un "local" système de fichiers:

  1. Fichier un fichier individuel; fournit readonly informations telles que le nom, la taille du fichier, le type mime, et une référence pour le descripteur de fichier.
  2. FileList - un tableau comme la séquence d'objets de Fichier. (Pensez - <input type="file" multiple> ou en faisant glisser un répertoire de fichiers depuis le bureau).
  3. Blob - Permet le découpage d'un fichier en octets des plages.

-- Edit --

Voir Paul D. Waite de commentaire ci-dessous

95voto

Chase Seibert Points 7609

En général, ce n'est pas autorisé par la conception. C'est une violation de la sandbox.

Mise à jour: il est désormais possible dans les navigateurs actuels, voir la réponse ci-dessous.

À Partir De Wikipedia -> Javascript -> Sécurité:

JavaScript et le DOM fournir l' potentiel pour les auteurs de fournir des scripts à exécuter sur un client ordinateur via le web. Navigateur auteurs contenir ce risque à l'aide de deux des restrictions. D'abord, les scripts s'exécutent dans un sandbox dans lequel ils ne peuvent effectuer web liés à des actions, pas des de programmation à usage général des tâches comme la création de fichiers.

21voto

Jason S Points 58434

Sur Firefox, vous (le programmeur) pouvez le faire depuis un fichier JavaScript:

 netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserWrite");
 

et vous (l'utilisateur du navigateur) serez invité à autoriser l'accès. (Pour Firefox, il suffit de le faire une fois à chaque démarrage du navigateur)

Si l'utilisateur du navigateur est quelqu'un d'autre, il doit accorder une autorisation.

12voto

s0laris Points 381

Vous voudrez peut-être jeter un coup d’œil sur le code source de tiddlywiki et sur ce post SO .
Il utilise des méthodes spécifiques du navigateur pour enregistrer son instance modifiée dans le système de fichiers local.

6voto

Traphicone Points 64

Si vous déployez sur Windows, Windows Script Host offre une API JScript très utile au système de fichiers et à d'autres ressources locales. L’incorporation de scripts WSH dans une application Web locale peut toutefois ne pas être aussi élégante que vous le souhaiteriez.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X