


Introduction to the use of HTML5 FileSystem API_html5 tutorial skills
One of the strengths of HTML5 is that it allows web programs to apply for some temporary or permanent space (Quota) where data storage and even file operations can be performed.
FileSystem provides operations such as creating, moving, and deleting folders and files, which greatly facilitates local processing of data. Moreover, all data is in a sandbox (sandboxed), and different web programs cannot access each other. This This ensures data integrity and security.
In the CatWrite project, this feature of HTML5 is used to store data, which is very convenient. However, currently only the Chrome browser supports the FileSystem API better, so it can only run in the Chrome browser.
When completing this function, I consulted a lot of information. Some of the information was a year ago. However, with the changes in browser versions, some codes have become outdated. I will summarize and organize them one by one here. Only the APIs used in the project are listed here, which is a summary of the completed functions.
Apply for space
In order to store data, you must apply to the browser. If it is permanent storage, the user will be asked, and execution will continue only after consent.
First you must declare the desired permissions.
window.requestFileSystem = window.requestFileSystem || window.webkitRequestFileSystem; //File system request identification
window.resolveLocalFileSystemURL = window.resolveLocalFileSystemURL || window.webkitResolveLocalFileSystemURL; //Obtain the read permission of the file based on the URL
After obtaining the system permission You can apply for space from the browser
window. requestFileSystem(window.PERSISTENT, //persistent(permanent) or temporary(temporary)
1024*1024, //1M
onInitFs, //callback function after success
errorHandler); //after error Callback function
Callback function
function onInitFs(fs){
fs.root.getDirectory('catwrite_documents', {create: true}, function(dirEntry) {
console.log('You have just created the ' dirEntry. name ' directory.');
}, errorHandler);
}
//Error callback
function errorHandler(err){
var msg = 'An error occured: ';
switch (err.code) {
case FileError.NOT_FOUND_ERR:
msg = 'File or directory not found';
break;
case FileError.NOT_READABLE_ERR:
msg = 'File or directory not readable';
break;
case FileError.PATH_EXISTS_ERR:
msg = 'File or directory already exists';
break;
case FileError.TYPE_MISMATCH_ERR:
msg = ' Invalid filetype';
break;
default:
msg = 'Unknown Error';
break;
};
console.log(msg err);
}
If you succeed, you will regret calling the OnInitFs callback function, and use the getDirectory method to create a folder, which will be discussed below.
But there is a problem. If you do this, it will be applied every time the page is loaded. This is definitely not what we want. What we want is to be able to read the data when there is data.
Determine whether space has been applied for
So we need to read the browser's data to see if it has been stored. This uses another API:
void queryUsageAndQuota(
in DOMString url,
in EntryCallback successCallback,
in optional ErrorCallback errorCallback
);
This API can query the space status of the current web, if successful The successCallback callback function will be called and the used space and total space will be passed into the method as parameters. If it fails, errorCallback is called.
window.webkitStorageInfo.queryUsageAndQuota(webkitStorageInfo.PERSISTENT,
function(used, remaining){
if(remaining == ""){
console.log("No space applied. ");
}else{
console.log("used space" used);
console.log("all space" remaining);
}
},
errorHandler);
We can judge whether there is application space by judging the remaining parameter. If there is no application, return to the previous step to apply for space. If there is already space, you need to obtain the space and the file so that you can operate the data.
Get file entry
FileSystem uses a special file system and sandbox mode. Files in the sandbox cannot be accessed on a computer or other web. You can only use the corresponding format. access.
Type in your browser:
?filesystem:http://catcoder.com/persistent/
In this way, you can access the permanent data of the catcoder.com website on this machine. Replace persistent with temporary to read the temporary space.
Then we can get the entry of the file through the URL and the corresponding API (Lets you look up the entry for a file or directory with a local URL).
void resolveLocalFileSystemURL(
in DOMString url ,
in EntryCallback successCallback,
in optional ErrorCallback errorCallback
);
You can read the data stored on the machine below
var url = "filesystem:http://" window. location.host "/persistent/catwrite_documents/";
window.resolveLocalFileSystemURL(url,function(fileEntry){
console.log(fileEntry);
var dirReader = fileEntry.createReader();
var readEntries = function(){
dirReader.readEntries(function(results){
if(!results.length){
create_file_title("Default file", "");
console.log ("No file!");
}else{
console.log("Read results.length "files");
for(var i = 0; i < results. length; i ){
console.log(results[i].name);
getFileContentByName(fileEntry, results[i].name);
}
}
},errorHandler) ;
};
readEntries();
},errorHandler);

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

Guide to Table Border in HTML. Here we discuss multiple ways for defining table-border with examples of the Table Border in HTML.

This is a guide to Nested Table in HTML. Here we discuss how to create a table within the table along with the respective examples.

Guide to HTML margin-left. Here we discuss a brief overview on HTML margin-left and its Examples along with its Code Implementation.

Guide to HTML Table Layout. Here we discuss the Values of HTML Table Layout along with the examples and outputs n detail.

Guide to Moving Text in HTML. Here we discuss an introduction, how marquee tag work with syntax and examples to implement.

Guide to the HTML Ordered List. Here we also discuss introduction of HTML Ordered list and types along with their example respectively

Guide to HTML onclick Button. Here we discuss their introduction, working, examples and onclick Event in various events respectively.

Guide to HTML Input Placeholder. Here we discuss the Examples of HTML Input Placeholder along with the codes and outputs.
