我開發了一些python應用程序,所以我知道如何在python本地執行此操作,但是我正在與一些PHP開發人員(我對PHP一無所知)說誰不能完成在PHP中。這是一個想法:一個PHP驅動的遠程網站,它創建/託管文件。使用網絡瀏覽器,我想從本網站下載一系列文件夾和文件到本地機器上,覆蓋已存在的具有相同名稱的文件/文件夾。所以在我的瀏覽器中,我點擊一個下載按鈕,要求我瀏覽本地或網絡文件夾以下載文件夾和文件。目前,我們只是下載一個包含所有這些文件和文件夾的.zip文件,我們必須解壓並手動移動,複製粘貼等,非常麻煩和繁瑣。 PHP和其他語言必須有更好的方法嗎?Python> PHP - 下載文件和文件夾覆蓋
回答
不,不可能從PHP(服務器端語言)訪問客戶機(從瀏覽器)並直接操縱他的文件系統,硬盤驅動器或類似的東西。這不是它的工作方式。
想一想,如果可以完成,我們會面臨嚴重的安全威脅,例如我們訪問像somebadassdude.com這樣的頁面,並且他們有一個PHP腳本,可以創建無限制的文件夾和文件來填滿所有我們的高清...那很軟。
但希望瀏覽器不要允許通過安全設計。
看看這個:
正如你可以在圖中,瀏覽器和服務器響應對方通過HTTP請求&響應見。它們之間沒有像在客戶端操作系統上運行的本地程序那樣的通信。你用他的瀏覽器對待,並且沒有辦法命令瀏覽器來操縱客戶端硬盤,並且如果這可能發生,請查看我之前提到的安全保護措施。
爲了更清楚起見,您的PHP腳本在您的服務器上運行,而不是在客戶端機器上運行。當用戶/瀏覽器請求服務器上的特定資源並響應HTTP響應,並且它可以包含HTML,Json或文件(可以通過外部程序下載或可視化)或其他內容時,它只會響應。
你只有有限的選項:
- 如果是買點內聯網,或 本地網絡,並且可以訪問該網絡,本地或遠程 像VPN接入。你可以在 網絡上共享文件夾中,這樣你可以在 以創建文件夾和文件複製到它,而必須 下載一個ZIP,並從瀏覽器中手動解壓使用PHP腳本或Python腳本。
- 使用Java Applet。爲什麼?由於Java Applet在客戶端運行 ,因此您可以訪問他的計算機(如果用戶 允許),並且您可以操縱(創建,刪除,讀取, 等文件夾和文件)他的硬盤驅動器。因此,當用戶選擇要下載的文件時,您可以啓動Java Applet,然後讓服務器請求用戶標記的文件 。當您下載文件時,創建 或覆蓋客戶機上的文件。
- 在客戶端計算機上創建並運行一個不利於網頁的程序,通過這種方式可以獲得所需的靈活性。但當然,它有他自己的複雜性。
所以IHMO我認爲Java小程序,也許是你最適合的解決方案:
- 不必改變太多實際的商業模式
- 它不需要大量的時間投資。
- 它是跨平臺的,Java可以在大量的操作系統上工作,並且可以在最流行的瀏覽器中使用Java Applets。
順便說一句,我個人不喜歡Java,但它是一種工具,而且您必須使用正確的工具才能完成工作。
乾杯。
感謝您的回答,那麼無論如何,我們可以通過在本地網絡/本地客戶端,python等上運行的東西干預,然後自動完成最終的位......不知何故......? – speedyrazor
@speedyrazor您可以使用Java Applet,它可以在客戶端計算機上本地運行,並且可以執行所需的任務,例如操縱他的文件系統。 –
不好意思問,但是這個Java Applet如何與php下載一起使用? – speedyrazor
- 1. 覆蓋所有文件和文件夾,同時使用PHP
- 2. PHP函數下載並覆蓋下載的文件
- 3. 用git覆蓋文件夾
- 4. 覆蓋文件夾功能和衝突?
- 5. Servlet - 強制覆蓋下載文件
- 6. Python - 移動和覆蓋文件和文件夾
- 7. Windows批量覆蓋文件夾和子文件夾中的現有文件
- 8. 使PHP覆蓋XML文件?
- 9. 複製文件夾,而不會覆蓋
- 10. 如何讓ZipArchive不覆蓋某些文件和文件夾
- 11. SharpSVN覆蓋現有文件和文件夾
- 12. PHP從多個文件夾中壓縮和下載文件
- 13. PHP上傳和覆蓋照片文件
- 14. 覆蓋GitHub上的下載文件中的現有文件
- 15. 用其他文件夾覆蓋佈局文件夾路徑
- 16. 覆蓋文件
- 17. 顛覆文件夾和文件規範
- 18. 不能覆蓋文本文件 - PHP
- 19. Chutzpah代碼覆蓋排除文件夾
- 20. 覆蓋res文件夾的確定
- 21. WordPress更新覆蓋.svn文件夾
- 22. Apache mod-rewrite文件夾覆蓋
- 23. 用Starteam/CruiseControl覆蓋工作文件夾
- 24. net :: scp複製/覆蓋文件夾
- 25. Maven - 覆蓋測試資源文件夾
- 26. 如何覆蓋夾層文件?
- 27. 圖像文件夾覆蓋窗口azure
- 28. 父htaccess覆蓋子文件夾htaccess
- 29. 子文件夾的的.gitignore應覆蓋
- 30. CSV文件夾總是被覆蓋
您想創建文件夾並將文件直接下載到客戶端(瀏覽器)機器上?像本地計劃一樣? –
是的,文件和文件夾在遠程服務器上創建,然後通過瀏覽器下載到本地客戶端。 – speedyrazor
你的意思是直接創建文件夾並將文件複製到客戶機上?沒有客戶干預? –