是否可以將文件添加到網站的目錄中?如何在JavaScript中將文件添加到網站的目錄中?
換句話說,假設我有一個目錄 - 作爲一個例子,我會打電話給"myWeb"
- 它有index.html
和main.js
。
在main.js
,我想將添加新的頁面myWeb
當我點擊一個按鈕,讓我們說secondindex.html
(現在,我不會擔心再次點擊時覆蓋文件)。
這可能嗎?如果不是,還有其他技術,還是這是太廣泛?
是否可以將文件添加到網站的目錄中?如何在JavaScript中將文件添加到網站的目錄中?
換句話說,假設我有一個目錄 - 作爲一個例子,我會打電話給"myWeb"
- 它有index.html
和main.js
。
在main.js
,我想將添加新的頁面myWeb
當我點擊一個按鈕,讓我們說secondindex.html
(現在,我不會擔心再次點擊時覆蓋文件)。
這可能嗎?如果不是,還有其他技術,還是這是太廣泛?
出於安全原因,客戶端無法直接寫入服務器端,因爲它們沒有互相連接。如果將文件寫入服務器是您想要的,那麼您需要一個後端服務器和某種與之交互的API /腳本,並以此方式創建文件。
還有其他一些不涉及創建文件的方式,例如使用像Firebase這樣的數據庫或雲解決方案。但是,您可能希望保持站點基本並編寫靜態文件(速度是其中之一),並且不希望將數據庫設置和維護爲另一個數據庫,這是完全有效的原因。
這可以通過使用fs
模塊來完成在Node.js的,例如:
var fs = require('fs');
function generateHtml (req) {
return '<!DOCTYPE html><html><header><title>My Page</title></header><body><p>A test page</p></body></html>';
}
var filename = '/path/to/secondindex.html';
var stream = fs.createWriteStream(filename);
stream.once('open', function(fd) {
var html = generateHtml();
stream.write(html);
stream.end();
});
以上將是一個JavaScript文件服務器端,然後你會有些類型的服務器檢查請求(最好是使用令牌或其他東西來保護)並創建所需的文件。
fs
模塊特別靈活,您可以用許多不同的方式創建文件。以上使用流,適用於處理潛在大量文件的情況。
僅用於JavaScript,不支持。你需要某種服務器端組件,這通常是用數據庫完成的,而不是實際的單個文件。例如,以StackOverflow爲例,如果您可以使用JS將「.html」文件放在他們的服務器上,那將是不安全的,而且對於每個問題都有一個單獨的'.html'文件是愚蠢的。相反,他們有一組腳本和一個數據庫。 – ceejayoz
爲什麼不,如果不是。您可以簡單地按照此解決方案進行洞察: https://stackoverflow.com/questions/8390855/how-to-instantiate-a-file-object-in-javascript –
@tolulopeowolabi這將不要在網絡服務器上創建文件。 – ceejayoz