用于在硬盘中创建文本文件的html或java脚本代码

时间:2012-08-27 06:42:05

标签: javascript html file hard-drive createfile

请有人给我一个代码来在硬盘中创建一个文本文件

结果应该是一个html文件, 当双击html文件时,它需要在硬盘驱动器(本地)的给定路径中创建一个文本文件。

谢谢。

2 个答案:

答案 0 :(得分:1)

出于安全原因,不允许在浏览器的常规HTML页面中使用Javascript直接访问您选择的路径。

有些实验性的FileSystem APIs在较新的浏览器中为沙盒文件系统提供了一些功能,但您必须看看这些API是否满足您的需求。

除此之外,您还需要一些解决安全限制的方法,例如从浏览器插件中执行此操作,该插件已被授权和安装。

答案 1 :(得分:1)

有些东西告诉我,你没有足够的经验知道一个网页不能在你想要的位置在用户的空间中创建一个文件。

无论如何, 是一种方式,但您只能在沙箱中创建一个文件,即浏览器分配的保留和受保护空间。

这种情况仅适用于最近的Chrome浏览器......目前还没有别的。

首先,你必须要求一些配额:

storageInfo.requestQuota(PERSISTENT, bytes, function(quota) {
   requestFileSystem(PERSISTENT, quota, gotQuota, errorHandler);
}, function(e) {
   alert("Couldn't request quota:" + e);
});

您必须定义两个回调函数:一个用于成功(gotQuota),另一个用于失败(errorHandler)。

function gotQuota(fs) {
    // Creates a file
    fs.root.getFile('file.txt', {create: true}, function(fileEntry) {
       fileEntry.createWriter(function(fw) {
           fileWriter.onwriteend = function(e) {
               console.log("Write successful.");
           };
           fileWriter.onerror = function(e) {
               console.log("Write failed: " + e);
           };
           fw.write(new Blob(["This is the content"], {type: "text/plain"});
       });
    }, errorHandler);
}

伙计,这很复杂......请记住,其中一些功能是以供应商为前缀的(例如webkitStorageInfo)。

Reference