如何创建文件并从html页面追加数据?

时间:2012-09-17 23:12:28

标签: javascript python html file server-side

我的桌面上有一个html文件需要一些输入。我如何将该输入写入我的计算机上的文件?我是否必须使用另一种语言(即python或javascript?),我将如何做到这一点?在相关的说明中,有什么方法可以让javascript从html文件中启动一个应用程序(目标是写入我的计算机上的文件?

5 个答案:

答案 0 :(得分:2)

浏览器具有很多安全性,可以防止对您的计算机进行此级别的控制。这是一件好事。您不希望随机网站能够在访问它们的任何人的计算机上执行此操作。

他们这样做的方法是编写一个浏览器可以访问的Web应用程序。浏览器可以将数据提交到在您自己的计算机上运行的应用程序,您的应用程序可以操作文件系统或执行许多其他操作。

所以不,浏览器不能做这些事情。是的,你必须使用"另一种语言"创建一些在浏览器本身之外运行的东西。您可以使用javascript(请参阅node.js)或python来执行此操作,以及几乎任何其他用于创建此类事物的编程语言。选择哪一个取决于你。

答案 1 :(得分:2)

您必须使用其他语言。你应该看到Save file Javascript with file name(这需要你在网站上创建并让用户下载它)和Python Save to file(用于在HTML中实现Python,请参阅here)。或者在Javascript中,您可以使用ActiveX通过执行*:

来保存文件

的ActiveX

function WriteToFile()
{
var fso = new ActiveXObject("Scripting.FileSystemObject");
var s = fso.CreateTextFile("C:\\Test.txt", true);
s.WriteLine('Hello');
s.Close();
}

的Python

myFile = open('Failed.py', 'w')
myFile.write('whatever')
myFile.close()

Javascript(非ActiveX)

uriContent = "data:application/octet-stream;filename=filename.txt," + 
          encodeURIComponent(codeMirror.getValue());
newWindow=window.open(uriContent, 'filename.txt');

**注意:我真的不建议使用ActiveX,有关详细信息,请参阅ActiveX and Javascript do not mix *

答案 2 :(得分:2)

现在可以使用目前仅Chrome和Opera支持的FileWriter API来使用Javascript写入本地文件:

http://caniuse.com/#search=filewriter

以下是HTML5Rocks.com的一些示例代码:

function onInitFs(fs) {

  fs.root.getFile('log.txt', {create: true}, function(fileEntry) {

    // Create a FileWriter object for our FileEntry (log.txt).
    fileEntry.createWriter(function(fileWriter) {

      fileWriter.onwriteend = function(e) {
        console.log('Write completed.');
      };

      fileWriter.onerror = function(e) {
        console.log('Write failed: ' + e.toString());
      };

      // Create a new Blob and write it to log.txt.
      var blob = new Blob(['Lorem Ipsum'], {type: 'text/plain'});

      fileWriter.write(blob);

    }, errorHandler);

  }, errorHandler);

}

window.requestFileSystem(window.TEMPORARY, 1024*1024, onInitFs, errorHandler);

http://www.html5rocks.com/en/tutorials/file/filesystem/

答案 3 :(得分:0)

你的问题有点难以回答。如果“需要一些输入”表示涉及form元素,那么您可以通过PHP之类的语言处理该元素。

如果您只是想编辑代码并开始学习HTML,那么Notepad / TextEdit和现代网络浏览器是您最好的朋友。

答案 4 :(得分:0)

简答:

你不能。 Web浏览器安全性和沙盒防止这种情况。

更长的回答:

设置一个小型LAMP堆栈,Ruby on rails(本地主机服务器),Python / Django(本地主机服务器)来托管您的HTML / Web表单。当您将数据输入到表单中时,本地守护程序可以处理将数据附加到文件。

使用HTML5,您可以获得可以允许您写入本地文件系统的特殊钩子,但这些钩子可能是特定于浏览器的,并且可能会不时地中断。