2011-06-25 3 views
4

Je dois permettre aux utilisateurs de mon Web App d'enregistrer des fichiers dans leur système de fichiers local après avoir travaillé sur un éditeur implémenté avec javascript (pour travailler sur un navigateur) J'ai entendu parler de l'API FileWriter en HTML5, mais pas Assurez-vous qu'il est pris en charge dans toutes les versions de Firefox, en particulier FireFox 5.JavaScript Filewriter dans FireFox

Est-ce que quelqu'un a d'autres solutions que le traitement côté serveur pour permettre aux utilisateurs d'enregistrer des fichiers dans leur système de fichiers local (bien sûr avec l'autorisation de l'utilisateur) dans FireFox. Comme je l'ai lu, Google Chrome prend en charge l'API FileWriter, mais je n'ai pas encore réussi à le faire fonctionner.

+0

Salut! Actuellement j'essaye de faire cela. Avez-vous trouvé une solution? – raultm

+0

Impossible de trouver une solution pour écrire le fichier localement – Raks

+1

Jetez un coup d'œil à cette [réponse] (http://stackoverflow.com/questions/6551253/saving-string-of-data-as-a-file-with- html5-javascript-without-using-uri/6551337 # 6551337). – david

Répondre

4

Non, Firefox does not support FileWriter, et la normalisation de cette API a été abandonnée (1, 2). http://www.w3.org/TR/file-writer-api/ maintenant les états:

Les travaux sur ce document ont été discontinués et il ne devrait pas être référencé ou utilisé comme base pour la mise en application.

Il semble que cette API didn't even provide the feature you seem to be looking for:

L'API ne vous donne pas accès au système de fichiers local, ni le bac à sable vraiment une partie du système de fichiers. Au lieu de cela, il s'agit d'un système de fichiers virtualisé qui ressemble à un système de fichiers à part entière de l'application Web. Il n'a pas nécessairement de relation avec le système de fichiers local en dehors du navigateur. Cela signifie qu'une application Web et une application de bureau ne peuvent pas partager le même fichier en même temps. L'API ne permet pas à votre application Web d'atteindre les fichiers sur lesquels les applications de bureau peuvent également fonctionner en dehors du navigateur.

Vous pouvez utiliser localStorage ou IndexedDB pour stocker le côté client de données, mais pas dans un fichier arbitraire, l'utilisateur peut sélectionner via filepicker.

Vous pouvez écrire une extension qui fournit l'API nécessaire au contenu JS. En 2015, it's unclear which technology you should use for that. (Adobe Flash initiant un téléchargement) est également souvent mentionné lorsque nous en discutons. Ce fil mentions an alternative based on data: URIs.