Lire, écrire et supprimer des fichiers en JavaScript à l'aide d'html 5Tutoriel Posté par Koener Hervé le 08/04/2014. intégralité sur Tutoriels en Folie
IntroductionActuellement, seul Google Chrome supporte le FileSystem API d'HTML5. Créer un système de fichier Avant de créer, modifier ou accéder à des fichiers stockés en local en JavaScript, nous devons avoir accès à un système de fichier. Utiliser la méthode « requestFileSystem ». Plusieurs arguments peuvent être utilisés afin de personnaliser notre système de fichier: • type: définit si le stockage est persistant (window.PERSISTENT) ou temporaire (window.TEMPORARY); • size:définit la taille de l'espace de stockage en bytes; • successCallback: fonction appelée lorsque le système de fichier est disponible; • opt_errorCallback: fonction appelée s'il y a une erreur lors de l'initialisation du système de fichier; Le système de fichier est placé dans une sandbox, c'est à dire que l'on peut avoir accès qu'aux fichiers créés par l'application JavaScript. NB: la permission de l'utilisateur est requise lorsque l'on essaye de créer un système de fichier persistant. Voici un exemple: function onInitFs(fs) { Créer un fichier avec getFilefunction onInitFs(fs) { |
|
function onInitFs(fs) {
fs.root.getFile('tutorielsenfolie.txt', {}, readFile, errorHandler);
}
function readFile(fileEntry) {
// On récupère l'objet File qui représente le fichier,
// Ensuite on utilise FileReader pour le lire.
fileEntry.file(function(file) {
var reader = new FileReader();
reader.onloadend = function(e) {
alert(this.result);
};
reader.readAsText(file);
}, errorHandler);
}
window.requestFileSystem = window.requestFileSystem ¦¦ window.webkitRequestFileSystem;
window.requestFileSystem(window.TEMPORARY, 1024*1024, onInitFs, errorHandler);
Comme vous pouvez le voir ci-dessus, la méthode « readFile » reçoit un objet de type FileEntry. Cet objet représente le fichier à lire. Nous utilisons ensuite un FileReader afin de lire le contenu de ce fichier.
Je vais maintenant vous expliquer comment écrire dans un fichier en JavaScript à l'aide de l'HTML5. Pour ce faire nous allons utiliser l'objet FileWriter:
function onInitFs(fs) {
fs.root.getFile('tutorielsenfolie.txt', {create: true}, writeFile, errorHandler);
}
function writeFile(fileEntry) {
fileEntry.createWriter(function(fileWriter) {
fileWriter.onwriteend = function(e) {
alert('OK.');
};
fileWriter.onerror = function(e) {
alert('Error: ' + e.toString());
};
// On crée un objet Blob pour écrire dans le fichier.
var data = new Blob(['Tutoriels en folie'], {type: 'text/plain'});
fileWriter.write(data);
}, errorHandler);
}
window.requestFileSystem = window.requestFileSystem ¦¦ window.webkitRequestFileSystem;
window.requestFileSystem(window.TEMPORARY, 1024*1024, onInitFs, errorHandler);
La configuration {create: true} permet de créer le fichier si celui-ci n'existe pas.
Dans l'exemple ci-dessus nous remplaçons l'entièreté du contenu du fichier. Voici un exemple ou l'on ajoute les données à la fin du fichier:
function onInitFs(fs) {
fs.root.getFile('tutorielsenfolie.txt', {create: true}, writeFile, errorHandler);
}
function writeFile(fileEntry) {
fileEntry.createWriter(function(fileWriter) {
// On commence à la fin du fichier.
fileWriter.seek(fileWriter.length);
// On crée un objet Blob pour écrire dans le fichier.
var data = new Blob(['Tutoriels en folie'], {type: 'text/plain'});
fileWriter.write(data);
}, errorHandler);
}
window.requestFileSystem = window.requestFileSystem ¦¦ window.webkitRequestFileSystem;
window.requestFileSystem(window.TEMPORARY, 1024*1024, onInitFs, errorHandler);
Pour supprimer le fichier à l'aide de l'api HTML5, il suffit d'exécuter la méthode JavaScript « remove » de l'objet FileEntry:
function onInitFs(fs) {
fs.root.getFile('tutorielsenfolie.txt', {create: false}, deleteFile, errorHandler);
}
function deleteFile(fileEntry) {
fileEntry.remove(function() {
alert('OK');
}, errorHandler);
}
window.requestFileSystem = window.requestFileSystem ¦¦ window.webkitRequestFileSystem;
window.requestFileSystem(window.TEMPORARY, 1024*1024, onInitFs, errorHandler);
Trois autres tutoriels peuvent vous inéresser: