JavaScript在web開發(fā)中扮演著重要的角色,其中之一就是可以使用它寫文件并將其保存到本地文件系統(tǒng)中的能力。Chrome瀏覽器提供了多種方法來實(shí)現(xiàn)這個目標(biāo),并為開發(fā)人員提供了很多便利。
下面是一個簡單的示例,演示了如何使用JavaScript編寫文件,將其保存到本地文件系統(tǒng)中。
var fileContent = "Hello, World!"; var fileName = "Hello.txt"; // Create a new Blob object var blob = new Blob([fileContent], { type: "text/plain;charset=utf-8" }); // Get a reference to the file system API, using the fileSystem API var fileSystem = window.fileSystem || window.webkitFileSystem || window.mozFileSystem || window.msFileSystem; if (fileSystem) { fileSystem.requestFileSystem(window.TEMPORARY, 5 * 1024 * 1024, function(fs) { // Create a new FileWriter object fs.root.getFile(fileName, { create: true }, function(fileEntry) { fileEntry.createWriter(function(fileWriter) { // Write the blob to the file fileWriter.write(blob); }, errorHandler.bind(null, fileName)); }, errorHandler.bind(null, fileName)); }, errorHandler.bind(null, fileName)); } else { // Fall back to using the saveAs() function saveAs(blob, fileName); }
需要注意的是,Chrome瀏覽器不允許網(wǎng)頁自動將文件保存到本地文件系統(tǒng)中。因此,以上代碼使用了FileSaver.js庫來代替默認(rèn)的保存行為。
下一個示例演示如何使用XMLHttpRequest對象從遠(yuǎn)程服務(wù)器獲取文件內(nèi)容,并將其保存到本地文件系統(tǒng)中。
var xhr = new XMLHttpRequest(); xhr.open("GET", "http://example.com/myfile.txt", true); xhr.responseType = "blob"; xhr.onload = function() { if (this.status == 200) { var blob = this.response; var fileName = "myfile.txt"; // Get a reference to the file system API, using the fileSystem API var fileSystem = window.fileSystem || window.webkitFileSystem || window.mozFileSystem || window.msFileSystem; if (fileSystem) { fileSystem.requestFileSystem(window.TEMPORARY, 5 * 1024 * 1024, function(fs) { // Create a new FileWriter object fs.root.getFile(fileName, { create: true }, function(fileEntry) { fileEntry.createWriter(function(fileWriter) { // Write the blob to the file fileWriter.write(blob); }, errorHandler.bind(null, fileName)); }, errorHandler.bind(null, fileName)); }, errorHandler.bind(null, fileName)); } else { // Fall back to using the saveAs() function saveAs(blob, fileName); } } }; xhr.send();
在這個示例中,我們首先使用XMLHttpRequest對象從遠(yuǎn)程服務(wù)器獲取文件內(nèi)容。然后,我們根據(jù)需要對服務(wù)器返回的數(shù)據(jù)進(jìn)行解析,并根據(jù)需要存儲它。注意,文件的保存過程中,我們使用了與前面的示例中相同的文件系統(tǒng)API。
雖然以上兩個示例中的JavaScript代碼都非常簡短,但它們提供了我們實(shí)現(xiàn)相當(dāng)復(fù)雜的保存文件功能所需的基本構(gòu)建塊。通過勤奮研究,結(jié)合Chrome瀏覽器豐富的文檔資料,我們可以輕松地實(shí)現(xiàn)大多數(shù)常見的文件操作任務(wù)。
上一篇php if !=
下一篇css中窗戶垂直居中