【问题标题】:How to Create a Text File Locally at client side using JavaScript/JQuery如何使用 JavaScript/JQuery 在客户端本地创建文本文件
【发布时间】:2011-10-07 08:58:23
【问题描述】:

我希望使用 javascript/jquery 在我的系统上本地创建一个文本文件。

我正在尝试此代码,但无法在我的系统上运行。

机器:Ubuntu 10.4 铬:14.0.835.126

window.webkitRequestFileSystem(window.TEMPORARY, 1024*1024, function(fs) {
        fs.root.getFile('~/Desktop/test.txt', {create: true}, function(fileEntry) {
            alert(fileEntry.fullPath);   //getting filepath
        }, function() {});
    }, function() {});

【问题讨论】:

  • 证明我错了,但我不认为这是可能的。你肯定可以设置一个cookie。
  • “不工作”是什么意思?你看到错误了吗?您是从头开始编写此代码还是从某个教程或参考站点复制它,URL 是什么?我们需要更多信息。
  • ChecK This Fiddle 这仅适用于 .bin 文件。
  • 我没有收到任何错误。此代码在 jsFiddle 上运行良好
  • 如果代码运行良好,那么您的问题是什么?

标签: javascript html


【解决方案1】:

这有点棘手,但很有效

chrome.browserAction.onClicked.addListener(createFile);
createFile();

function createFile()
{
    chrome.tabs.getSelected(null, function(tab) {
        window.webkitRequestFileSystem(window.TEMPORARY, 1024*1024, function(fs) {
            fs.root.getFile('test', {create: true}, function(fileEntry) {
                fileEntry.createWriter(function(fileWriter) {
                    var builder = new WebKitBlobBuilder();
                    builder.append("Saurabh");
                    builder.append("\n");
                    builder.append("Saxena");

                    var blob = builder.getBlob('text/plain');

                    fileWriter.onwriteend = function() {
                        chrome.tabs.create({"url":fileEntry.toURL(),"selected":true},function(tab){});
                    };
                    fileWriter.write(blob);
                }, errorHandler);
            }, errorHandler);
        }, errorHandler);
    });
}
function errorHandler(e) {
  var msg = '';

  switch (e.code) {
    case FileError.QUOTA_EXCEEDED_ERR:
      msg = 'QUOTA_EXCEEDED_ERR';
      break;
    case FileError.NOT_FOUND_ERR:
      msg = 'NOT_FOUND_ERR';
      break;
    case FileError.SECURITY_ERR:
      msg = 'SECURITY_ERR';
      break;
    case FileError.INVALID_MODIFICATION_ERR:
      msg = 'INVALID_MODIFICATION_ERR';
      break;
    case FileError.INVALID_STATE_ERR:
      msg = 'INVALID_STATE_ERR';
      break;
    default:
      msg = 'Unknown Error';
      break;
  };

  Console.Log('Error: ' + msg);
}

由于安全例外,我无法在本地系统上创建/修改文件。但在这段代码中,我实际上是在为 Google Chrome 临时文件分配的目录中创建一个文件,然后将该文件下载到我的下载文件夹中。

这是 Chrome 扩展的弹出页面的代码。

:)

【讨论】:

    猜你喜欢
    • 2014-04-21
    • 2011-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-20
    相关资源
    最近更新 更多