【问题标题】:File Write Operation in javascriptjavascript中的文件写入操作
【发布时间】:2015-09-01 08:30:18
【问题描述】:

我需要在 javascript 中写入一个文件。我在下面尝试了代码。我得到了类似“FileWriter is not defined”的错误。请帮助我。

<html>
<head>

</head>
<body>
 <input type = "button" value = "write" onclick="WriteFile()">
<script>

function WriteFile()
{
var fileWriter = new FileWriter("C:\Users\ananthi\Desktop\readme.txt");
fileWriter.open() ; 
fileWriter.writeLine("Another line") ; 
fileWriter.close() ;

}


</script>
</body>
</html>

【问题讨论】:

  • FileWriter() 是一个 Java 类。 Java != Javascript。
  • 并且在浏览器中执行的JavaScript无法写入文件。算了。
  • @IKavanagh:它也是现已失效的File Writer API 的一部分,所以不仅仅是Java 的东西。只是在浏览器 API 中用于类似内容的相同名称。
  • @T.J.Crowder 没有意识到这一点。在这里使用它仍然是Java。除了this,我找不到太多关于它的内容,它显示了与问题完全不同的用法。
  • @IKavanagh:是的。好吧,它是一个已失效的 API,从未得到广泛支持,所以...

标签: javascript


【解决方案1】:

File Writer API 已失效,并且从未看到重要的浏览器支持。

您不能从基于浏览器的 JavaScript 写入文件。相反,您要做的是向用户提供他们可以下载的链接,如下所示:

var filename = "readme.txt";
var text = "Text of the file goes here.";
var blob = new Blob([text], {type:'text/plain'});
var link = document.createElement("a");
link.download = filename;
link.innerHTML = "Download File";
link.href = window.URL.createObjectURL(blob);
document.body.appendChild(link);

这适用于支持File APImodern ones do,但不支持 IE9 或更早版本)的浏览器。

【讨论】:

    【解决方案2】:

    如果您想使用按钮调用功能:

    <input type = "button" value = "write" onclick="Download()">
    
    Download () {
            let filename = "readme.txt";
            let text = "Text of the file goes here.\n1";
            let blob = new Blob([text], {type:'text/plain'});
            let link = document.createElement("a");
            link.download = filename;
            //link.innerHTML = "Download File";
            link.href = window.URL.createObjectURL(blob);
            document.body.appendChild(link);
            link.click();
            setTimeout(() => {
                document.body.removeChild(link);
                window.URL.revokeObjectURL(link.href);
            }, 100);
        }

    【讨论】:

    • 清晰紧凑。工作正常。
    猜你喜欢
    • 1970-01-01
    • 2012-02-16
    • 2011-08-17
    • 1970-01-01
    • 2013-02-19
    • 2011-01-04
    • 1970-01-01
    • 2015-09-24
    • 2012-10-18
    相关资源
    最近更新 更多