0

请有人给我一个在硬盘驱动器中创建文本文件的代码

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

谢谢你。

4

2 回答 2

1

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

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

除此之外,您需要通过某种方式绕过安全限制,例如从查看器已授权和安装的浏览器插件中执行此操作。

于 2012-08-27T06:55:38.110 回答
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)。

参考

于 2012-08-27T07:04:43.800 回答