簡體   English   中英

如何創建文件並從html頁面追加數據?

[英]How to create a file and append data from html page ?

我的桌面上有一個html文件需要一些輸入。 我如何將該輸入寫入我的計算機上的文件? 我是否必須使用另一種語言(即python或javascript?),我將如何做到這一點? 在相關的說明中,有什么方法可以讓javascript從html文件中啟動一個應用程序(目標是寫入我的計算機上的文件?

瀏覽器具有很多安全性,可以防止對您的計算機進行這種級別的控制。 這是一件好事。 您不希望隨機網站能夠在訪問它們的任何人的計算機上執行此操作。

他們這樣做的方法是編寫一個瀏覽器可以訪問的Web應用程序。 瀏覽器可以將數據提交到在您自己的計算機上運行的此應用程序,您的應用程序可以操作文件系統或執行許多其他操作。

所以不,瀏覽器不能做這些事情。 是的,您必須使用“另一種語言”來創建在瀏覽器本身之外運行的東西。 您可以使用javascript(請參閱node.js)或python來執行此操作,以及幾乎任何其他用於創建此類事物的編程語言。 選擇哪一個取決於你。

你必須使用另一種語言。 您應該看到使用文件名保存文件Javascript (這需要您在網站上創建它並讓用戶下載它)和Python保存到文件 (用於在HTML中實現Python,請參見此處 )。 或者在Javascript中,您可以通過執行*來使用ActiveX來保存文件:

的ActiveX

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

蟒蛇

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和Javascript不要混合更多細節*

現在可以使用目前僅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/

你的問題有點難以回答。 如果“需要一些輸入”意味着有一個form元素,那么你可以通過像PHP這樣的語言來處理它。

如果您只是想編輯代碼並開始學習HTML,那么Notepad / TextEdit和現代 Web瀏覽器是您最好的朋友。

簡短回答:

你不能。 Web瀏覽器安全性和沙盒防止這種情況。

更長的回答:

設置一個小型LAMP堆棧,Ruby on rails(本地主機服務器),Python / Django(本地主機服務器)來托管您的HTML / Web表單。 當您將數據輸入到表單中時,本地守護程序可以處理將數據附加到文件。

使用HTML5,您可以獲得可以允許您寫入本地文件系統的特殊掛鈎,但這些掛鈎可能是特定於瀏覽器的,並且可能會不時地中斷。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM