2013-12-11 30 views
0

這是我通過google找到的腳本。我編輯了文件名。Javascript - 複製文件

這就是:

<html> 
<head>File copy in progress...Don't close this page.</head> 
<script type="text/javascript"> 
    // initialize ActiveXObject and create an object of Scripting.FileSystemObject. 
    var fso = new ActiveXObject("Scripting.FileSystemObject"); 

    // copies a file to another location + overwrites the file if already exits 
    fso.CopyFile("file1.txt", "file2.txt", 1); 


    fso = null; 
</script> 
</html> 

但它不是抄襲什麼?事實上,它有可能在JavaScript中複製文件?

+4

其中瀏覽器正在使用?這隻適用於IE瀏覽器,我猜測,只有在某些情況下。 – Joe

+0

firefox和google chrome @Joe –

+0

此外,您沒有正確使用''。此外,同步使用(我不知道API如何工作)會使瀏覽器非常不高興。 – Joe

回答

3

在評論原來,提問者的目標是:

通過http服務一個html頁面
包含JavaScript,它直接複製/修改服務器上的文件,該文件服務於html頁面。

我的朋友的答案是,據我所知,你不能直接(只使用瀏覽器的客戶端JavaScript)做到這一點。對於初學者來說,HTTP(S)不是像說.. ftp這樣的文件協議。

所以,最終你要麼需要找到一種方式來與客戶端JavaScript的網絡文件協議(例如ftp)進行通信(我不知道這樣一個一般的圖書館,但你可以做到這一點IE,但是你需要一些開發人員許可證註冊表鍵來訪問Windows上的完整網絡功能,並且你仍然需要做自己的包裝庫(或者購買特定的ActiveX插件等)來進行通信,除了你的界面的其餘部分)。

而您在答案中發佈的IE特定代碼並不意味着要做到這一點(儘管它可以訪問您有權訪問的Windows共享)。

很明顯,我們可以忘記這個選項。因爲你說你已經知道如何在php中做這些事情,你的下一步可能是添加一個JavaScript驅動/增強(思考樹視圖等)html-gui,它發送命令(post或get)到您的php腳本,實際上覆制/修改您的服務器上的文件。最終你只是重新創建一個php文件管理器(谷歌提示)。

如果你使用node.js的方式,那麼這種方法只是取代了PHP,而其餘的方法仍然是一樣的:後端執行命令並將結果/目錄列表等發送給HTML GUI (可能通過ajax)。

你看,有很多更有趣的事情可供探索,你已經到了一半。

希望這會有所幫助。

編輯:
人們可能會欺騙艱難的,你可以下載一個文件(修改),並將其存儲在一個HTML5 typed array和使用http PUT (also supporting delete)再次將其存儲在服務器上。現在你仍然需要處理安全/用戶識別...(並且在那裏有php,json,一些服務器端處理程序仍然再次啓用,我目前不確定apaches放置模塊是如何工作的) 。使用服務器端包括你已經修改顯示目錄列表和一些這種類型的JavaScript可能會使一個非常原始文件管理器..種類..不完全複製...

+0

瞭解到javascript無法通過html複製文件。謝謝:) –

+1

+1瞭解OP究竟在問什麼。 – Hogan

2

這是一個奇怪的例子。首先,HTML頁面與本地文件系統交互並不常見。我期望任何現代瀏覽器都會抱怨ALOT關於這個代碼的警告和設置要求。另外,它使用的是一個只能在IE瀏覽器上使用的ActiveX控件,如果有的話。

也許這個例子是大約15歲?這將解釋很多。

我不希望這可以在過去5年中安裝/配置的任何系統上開箱即用。

您可以更改系統上的設置讓它工作,但我不會建議這樣做。你的系統在幾分鐘內就會變成電源/殭屍。

我認爲我們需要回到你想要做的事情上,爲什麼我懷疑HTML中的JavaScript並不是答案。


基於評論我的建議是你使用node.js。你會學到很多東西,玩得開心,並且正在使用一種未過15年的技術。

轉到這裏,生活的樂趣:

http://nodejs.org/

+0

可能會達到17歲! '最初版本\t 1996; 17年前 - http://en.wikipedia.org/wiki/ActiveX –

+0

@NickR - yep ...以及之後多久就會關閉它。不久。 – Hogan

+0

其實我正在練習JavaScript –