2014-06-22 80 views
2

我正在嘗試o爲我的作品製作應用程序(將僅用於我的辦公室),除此之外,我需要下載文件的方式(它將始終是一個ODT和一個txt文檔,通過用戶點擊按鈕啓動,在特定頁面 - 標準下載)從我們的本地服務器啓動。這兩個文件是在服務器上創建的,然後發送給下載給請求它的用戶,所以這部分很簡單,就像任何其他提供你下載的網頁一樣。谷歌瀏覽器擴展程序 - 下載,移動和刪除文件

但下載結束之後,我需要以某種方式:

1)自動打開ODT(OpenOffice的作家)的文件,所以用戶可以繼續編輯。接下來會發生什麼並不重要...

2)自動將TXT文件移動到用戶磁盤上的特定文件夾(這是必需的,因爲該特定文件夾由我們的特殊打印機監視,並且每當打印機自動檢測到該文件夾​​中的文件時開始打印)。將默認Chrome瀏覽器下載文件夾設置爲該監視文件夾不是選項 - 所以我需要在下載到該監視文件夾後自動移動TXT文件。

3)前兩個動作完成後,我需要清除默認的下載文件夾(默認情況下,鉻下載foldere),因爲它會充滿這些文件,他們不再需要。

現在,如果我可以用javascript完成它,那將是非常棒的,但是因爲我知道沒有辦法在本地系統上操作文件而不顯示對話框給用戶 - 所以這不是選項。

我明白,這部分可以通過鉻擴展完成,這是可接受的解決方案,因爲這個應用程序將只用在我的辦公室。但我不知道如何以及如果真的有可能完成我想要的,所以我需要你的幫助。

P.S. 重要的是,用戶點擊頁面上的「Download」下載ODT和TXT文件後,瀏覽器沒有其他窗口,對話框和其他「問題」,但之後的所有內容都應該自動進行。

謝謝!

+0

Javascript無法執行此操作(出於安全原因),因此您需要查看NaCl [Native Client](https://developer.chrome.com/native-client)和[Native Messaging](https:/ /developer.chrome.com/extensions/messaging#native-messaging)。 – David

+0

謝謝大衛,但是有可能使用谷歌瀏覽器擴展,它會爲我做這種文件操作(例如擴展監視器下載,當檢測到目標文件時,它會根據我的需要進行操作)。我知道google chrome有chrome fileSystem和downlod API,但不知道是否以及如何將它用於我的情況,以及是否可以在沒有任何額外的對話和輸入的情況下使用。 – AT8500

+0

@David查看我的答案 - 有可能通過'chrome.downloads'以有限的方式完成此操作API – Xan

回答

1

是的,只要您可以接受下載文件夾的子文件夾作爲打印機的目標,您就可以使用chrome.downloads API,完成這些任務。恐怕,你無法下載任意文件夾。

  1. chrome.downloads.download結束開始下載後,可以啓動與chrome.downloads.open(downloadId)打開它。 printout/file.txt

  2. 您可以通過向chrome.downloads.download相對路徑(注意/斜槓,而不是\)啓動下載到子文件夾。

  3. 您可以記住下載ID,然後用chrome.downloads.removeFile(downloadId)進行清理。

請注意您需要添加的權限,它們對於此API非常細化。

+0

在他的問題中,在編號2下他說:「將默認Chrome下載文件夾設置爲該監視文件夾不是選項」 – David

+0

@David這是可以理解的 - 你無法監控整個Downloads文件夾。一個特定的子文件夾,除非特別這樣做 - 這是可行的。 – Xan

+0

與子文件夾好解決方案可以工作,但我擔心用戶可能會意外刪除該文件夾,並且可能會導致很多打印機問題。如果發生這種情況,當我不在辦公室時,整個業務都會停止,因此風險太大。 但是,有沒有其他的解決方案,你們可以想到它不一定是鉻擴展。也許可以使用其他類似java applet或VB之類的東西。不是我熟悉他們,但我認爲我可以解決一些問題,因爲它非常簡單,我需要 – AT8500