用于在硬盘中创建文本文件的 html 或 java 脚本代码
Posted
技术标签:
【中文标题】用于在硬盘中创建文本文件的 html 或 java 脚本代码【英文标题】:html or java script code to create a text file in hard disk 【发布时间】:2012-08-21 15:56:57 【问题描述】:请有人给我一个在硬盘驱动器中创建文本文件的代码
结果应该是一个html文件, 当双击 html 文件时,它需要在硬盘驱动器(本地)的给定路径中创建一个文本文件。
谢谢。
【问题讨论】:
不可能。 See this 您可能需要一些解决方法,因为不允许 javascript 将文件写入硬盘。可能正在使用闪光灯或其他东西 【参考方案1】:出于安全原因,浏览器中常规 HTML 页面中的 JavaScript 不允许直接访问您在硬盘上选择的路径。
在较新的浏览器中,FileSystem APIs 为沙盒文件系统提供了一些功能,有点实验性,但您必须看看这些 API 能否满足您的需求。
除此之外,您还需要通过某种方式绕过安全限制,例如通过查看器已授权并安装的浏览器插件来执行此操作。
【讨论】:
谢谢,我明白了。这是不可能的。【参考方案2】:有些事情告诉我,您没有足够的经验知道网页无法在用户空间中您想要的位置创建文件。
无论如何,有一种方法,但您只能在沙盒中创建文件,即浏览器分配的保留和受保护的空间。
这只能在 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.
【讨论】:
谢谢,我明白了。这是不可能的以上是关于用于在硬盘中创建文本文件的 html 或 java 脚本代码的主要内容,如果未能解决你的问题,请参考以下文章