2014-04-18 57 views
0

我開發了一些python應用程序,所以我知道如何在python本地執行此操作,但是我正在與一些PHP開發人員(我對PHP一無所知)說誰不能完成在PHP中。這是一個想法:一個PHP驅動的遠程網站,它創建/託管文件。使用網絡瀏覽器,我想從本網站下載一系列文件夾和文件到本地機器上,覆蓋已存在的具有相同名稱的文件/文件夾。所以在我的瀏覽器中,我點擊一個下載按鈕,要求我瀏覽本地或網絡文件夾以下載文件夾和文件。目前,我們只是下載一個包含所有這些文件和文件夾的.zip文件,我們必須解壓並手動移動,複製粘貼等,非常麻煩和繁瑣。 PHP和其他語言必須有更好的方法嗎?Python> PHP - 下載文件和文件夾覆蓋

+0

您想創建文件夾並將文件直接下載到客戶端(瀏覽器)機器上?像本地計劃一樣? –

+0

是的,文件和文件夾在遠程服務器上創建,然後通過瀏覽器下載到本地客戶端。 – speedyrazor

+0

你的意思是直接創建文件夾並將文件複製到客戶機上?沒有客戶干預? –

回答

1

不,不可能從PHP(服務器端語言)訪問客戶機(從瀏覽器)並直接操縱他的文件系統,硬盤驅動器或類似的東西。這不是它的工作方式。

想一想,如果可以完成,我們會面臨嚴重的安全威脅,例如我們訪問像somebadassdude.com這樣的頁面,並且他們有一個PHP腳本,可以創建無限制的文件夾和文件來填滿所有我們的高清...那很軟。

但希望瀏覽器不要允許通過安全設計。

看看這個: Web Diagram

正如你可以在圖中,瀏覽器和服務器響應對方通過HTTP請求&響應見。它們之間沒有像在客戶端操作系統上運行的本地程序那樣的通信。你用他的瀏覽器對待,並且沒有辦法命令瀏覽器來操縱客戶端硬盤,並且如果這可能發生,請查看我之前提到的安全保護措施。

爲了更清楚起見,您的PHP腳本在您的服務器上運行,而不是在客戶端機器上運行。當用戶/瀏覽器請求服務器上的特定資源並響應HTTP響應,並且它可以包含HTML,Json或文件(可以通過外部程序下載或可視化)或其他內容時,它只會響應。

你只有有限的選項:

  • 如果是買點內聯網,或 本地網絡,並且可以訪問該網絡,本地或遠程 像VPN接入。你可以在 網絡上共享文件夾中,這樣你可以在 以創建文件夾和文件複製到它,而必須 下載一個ZIP,並從瀏覽器中手動解壓使用PHP腳本或Python腳本。
  • 使用Java Applet。爲什麼?由於Java Applet在客戶端運行 ,因此您可以訪問他的計算機(如果用戶 允許),並且您可以操縱(創建,刪除,讀取, 等文件夾和文件)他的硬盤驅動器。因此,當用戶選擇要下載的文件時,您可以啓動Java Applet,然後讓服務器請求用戶標記的文件 。當您下載文件時,創建 或覆蓋客戶機上的文件。
  • 在客戶端計算機上創建並運行一個不利於網頁的程序,通過這種方式可以獲得所需的靈活性。但當然,它有他自己的複雜性。

所以IHMO我認爲Java小程序,也許是你最適合的解決方案:

  • 不必改變太多實際的商業模式
  • 它不需要大量的時間投資。
  • 它是跨平臺的,Java可以在大量的操作系統上工作,並且可以在最流行的瀏覽器中使用Java Applets。

順便說一句,我個人不喜歡Java,但它是一種工具,而且您必須使用正確的工具才能完成工作。

乾杯。

+0

感謝您的回答,那麼無論如何,我們可以通過在本地網絡/本地客戶端,python等上運行的東西干預,然後自動完成最終的位......不知何故......? – speedyrazor

+0

@speedyrazor您可以使用Java Applet,它可以在客戶端計算機上本地運行,並且可以執行所需的任務,例如操縱他的文件系統。 –

+0

不好意思問,但是這個Java Applet如何與php下載一起使用? – speedyrazor