File System API pour enregistrer des fichiers en Javascript dans le navigateur

<!DOCTYPE html>
<html lang="fr">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

    <script>

        // Préfixe des fonctions selon les navigateurs
        window.requestFileSystem = window.requestFileSystem || window.webkitRequestFileSystem;
        window.directoryEntry = window.directoryEntry || window.webkitDirectoryEntry;

        // Demande de quota et des permissions pour accéder aux fichiers
        navigator.webkitPersistentStorage.requestQuota(1024 * 1024 /* 1MB */, function () {

            // Accéder au système de fichier
            window.requestFileSystem(PERSISTENT /*Persistent ou Temporary*/, 1024 * 1024 /* 1MB */, function (fs) {

                /* Création du dossier Documents
                * URL du dossier : filesystem:http://votre-nom-de-domaine.fr/persistent/
                */
                fs.root.getDirectory('Documents', { create: true }, function (directoryEntry) {
                    console.log(directoryEntry);


                    /* Création du fichier 
                    * URL du fichier : filesystem:http://votre-nom-de-domaine.fr/persistent/hello.txt
                    */
                    directoryEntry.getFile("hello.txt", { create: true }, function (file) {
                        console.log(file);
                        /* Création du Writer pour écrire dans le fichier */
                        file.createWriter(function (content) {
                            var blob = new Blob(["Bonjour !"], { type: "text/plain" });
                            /* "Bonjour !" dans le fichier */
                            content.write(blob);
                        });
                    }, function (e) {
                        console.error(e);
                    });

                }, function (e) {
                    console.error(e);
                });

            }, function (e) {
                console.error(e);
            });
        });

    </script>

</body>

</html>

Le navigateur va demander une autorisation d'accĂšs au stockage.

Dans la barre d'URL vous pouvez entrer les URL suivantes :

filesystem:http://votre-nom-de-domaine.fr/persistent/

filesystem:http://votre-nom-de-domaine.fr/persistent/Documents

filesystem:http://votre-nom-de-domaine.fr/persistent/Documents/hello.txt

Commentaires