L'accès aux fichiers locaux avec javascript
Est-il un local de manipulation de fichiers qui a été fait avec du JavaScript? Je suis à la recherche d'une solution qui peut être accomplie sans installer empreinte comme exigeant de l'AIR.
Plus précisément, j'aimerais lire le contenu d'un fichier et écrire le contenu d'un autre fichier. À ce point, je ne suis pas inquiet sur l'accès à des autorisations, tout en supposant que j'ai déjà toutes les autorisations nécessaires pour ces fichiers.
- chrome XHR spécifiques: stackoverflow.com/questions/4819060/...
Vous devez vous connecter pour publier un commentaire.
Si l'utilisateur sélectionne un fichier via
<input type="file">
, vous pouvez lire et processus ce fichier à l'aide de la Fichier API.La lecture ou l'écriture des fichiers arbitraires n'est pas autorisé par la conception. C'est une violation de la sandbox. De Wikipédia -> Javascript> Sécurité:
2016 mise à JOUR: Accès au système de fichiers directement est possible via la Système de fichiers de l'API, qui est uniquement pris en charge par Chrome et Opera et peut finissent par ne pas être mis en œuvre par d'autres navigateurs (avec le exception de Bord). Pour plus de détails voir Kevin répondre.
Juste une mise à jour des fonctionnalités 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:
<input type="file" multiple>
ou en faisant glisser un répertoire de fichiers depuis le bureau).-- Edit --
Voir Paul D. Waite de commentaire ci-dessous
Mise à JOUR Cette fonction est supprimée depuis Firefox 17 (voir https://bugzilla.mozilla.org/show_bug.cgi?id=546848).
Sur Firefox, vous (le programmeur) peut le faire à partir de l'intérieur d'un fichier JavaScript:
et vous (le navigateur de l'utilisateur) sera invité à autoriser l'accès. (pour Firefox, vous avez juste besoin de le faire une fois chaque démarrage du navigateur)
Si le navigateur de l'utilisateur est quelqu'un d'autre, ils ont l'octroi d'une autorisation.
Comme mentionné précédemment, le Système de fichiers et Fichier Api, ainsi que les FileWriter API, peut être utilisé pour lire et écrire des fichiers à partir du contexte d'un navigateur à onglet/fenêtre sur un ordinateur client.
Il y a plusieurs choses concernant le système de fichiers et FileWriter Api dont vous devez être conscient de, dont certains ont été mentionnés, mais valent la peine de le répéter:
Ici sont de simples exemples de la façon dont les Api sont utilisées, directement et indirectement, en tandem pour faire ces choses:
BakedGoods*
D'écrire le fichier:
Lire le fichier:
En utilisant le Fichier raw, FileWriter, et le système de fichier Api
D'écrire le fichier:
Lire le fichier:
Si le système de fichiers et FileWriter Api ne sont plus sur le suivi des normes, leur utilisation peut être justifiée dans certains cas, à mon avis, parce que:
Si "certains cas" englobe votre propre, cependant, c'est à vous de décider.
*BakedGoods est maintenu par rien d'autre que ce gars juste ici 🙂
NW.js vous permet de créer des applications de bureau à l'aide de Javascript, sans les restrictions de sécurité habituellement placé sur le navigateur. De sorte que vous pouvez exécuter des exécutables avec une fonction, ou de créer/modifier/lire/écrire/supprimer des fichiers. Vous pouvez accéder au matériel, tels que l'utilisation actuelle du PROCESSEUR ou de mémoire ram totale en cours d'utilisation, etc.
Vous pouvez créer un windows, linux, ou un mac de bureau de l'application qui ne nécessite aucune installation.
Voici un cadre pour NW.js l'Universel GUI:
Si vous êtes le déploiement sur Windows, le Windows Script Host propose une très utile JScript API du système de fichiers et autres ressources locales. Intégrant des scripts WSH dans un local de l'application web peut ne pas être aussi élégant que vous pourriez souhaiter, cependant.
Si vous avez le champ de saisie comme
Vous pouvez obtenir un contenu de fichier BLOB format:
FSO.js enveloppe le nouveau HTML5 système de fichiers de l'API qui est en cours de standardisation par le W3C et fournit un extrêmement facile façon de lire, écrire, ou traverser un local sandbox système de fichiers. Il est asynchrone, donc e /s de fichier ne sera pas interférer avec l'expérience de l'utilisateur. 🙂
Si vous avez besoin d'accéder à l'ensemble du système de fichiers sur le client, lire/écrire des fichiers, des dossiers de contrôle pour les changements, lancer des applications, de chiffrer ou signer des documents, etc. jetez un oeil à JSFS.
Il permet de sécuriser les accès illimité, à partir de votre page web pour les ressources de l'ordinateur sur le client sans l'aide d'un plugin de navigateur de la technologie comme AcitveX ou de l'Applet Java. Cependant, une paix de logiciel doit être installé aussi.
Afin de travailler avec JSFS vous devez avoir des connaissances de base en Java et Java EE développement (Servlets).
Veuillez trouver JSFS ici: https://github.com/jsfsproject/jsfs. C'est gratuit et sous licence GPL
à supposer qu'un fichier js pourriez avoir besoin, devraient être autorisés directement par l'utilisateur, les créateurs des célèbres navigateurs ne laissez pas accès javascript en général, les fichiers.
idée principale de la solution est: le javascript ne peut pas accéder au fichier en local de l'URL.
mais il peut utiliser le fichier en avoir c'est DataURL: donc, si l'utilisateur navigue sur un fichier et l'ouvre, js devrait obtenir le "DataURL" directement à partir de l'HTML au lieu de se faire "URL".
Puis il tourne la DataURL dans un fichier, à l'aide de readAsDataURL fonction et objet FileReader.
source et un guide plus complet avec un joli exemple:
https://developer.mozilla.org/en-US/docs/Web/API/FileReader?redirectlocale=en-US&redirectslug=DOM%2FFileReader
Il y a un (commercial) du produit, "localFS" qui peut être utilisé pour lire et écrire ensemble du système de fichiers sur l'ordinateur client.
Petite application Windows doit être installé et en minuscule .fichier js inclus dans votre page.
Comme une fonction de sécurité, accès au système de fichiers peut être limitée à un dossier, et protégé par une clé secrète.
https://www.fathsoft.com/localfs