2011-12-15 57 views
4

我需要從一個PHP頁面(在其客戶上傳他們的文件)到另一個PHP頁面另一臺服務器的文件將被存儲finaly上發送文件。從PHP頁面將文件發送到另一個

現在爲了通信我使用JSON-RPC協議;以這種方式發送文件是明智的嗎?

$string = file_get_contents("uploaded_file_path"); 

字符串發送到遠程服務器上,然後

file_put_contents("file_name", $recieved_string_from_remte); 

據我所知,這種方法需要兩倍的時間比直接上傳到第二個服務器。

感謝

[編輯]

細節:

我需要寫一個服務,允許一些PHP(可能的Joomla)用戶使用一個簡單的API來上傳文件和發送一些其他數據到我的服務器分析他們,把數據庫中,併發回回應

[re edit]

我需要創建一個簡單的方法,使最終用戶能夠做到這一點,誰將會使用這個接口上的服務器1(上傳)使用PHP和停止,讓遠程SSH安裝礦石怪有趣的東西

+0

我會使用ftp。 – 2011-12-15 19:44:01

+0

是的,我認爲你需要更好的approuch,這可能是非常危險或批評。也許帶來了ftp或sql。但如果你仍然需要這樣做,我回答你... – 2011-12-15 19:46:50

+0

問題是,1 - 我不想添加額外的東西,2 - 遠程SRV需要做一些東西白衣這個文件,並回砂一些反應,在面向對象的上下文中,所以我不想分割操作 – Zorb 2011-12-15 19:47:46

回答

1

如果我是你,我會直接將文件發送到第二臺服務器,並將其文件名和/或文件名的一些散列(用於更容易檢索)存儲在第一臺服務器上的數據庫中。

使用這種方法,你可以從第一個用於操作的狀態查詢第二個服務器。這樣,您可以將文件處理留給第二臺機器,並將用戶交互分配給第一臺機器。

1

由於我說在我的意見,這是不推薦,但無論如何....

您可以通過字節使用套接字讀取字節: http://php.net/manual/en/book.sockets.php

,或者您可以使用ftp: http://php.net/manual/en/book.ftp.php

無論如何,你的approuch中的問題是與用戶導航異步或同步的過程?我真的建議你通過SQL或FTP傳遞給用戶一個基於另一個事件(如文件觀看,然後電子郵件等)或使用SQL(二進制,BLOB等)的響應

1

如果你不需要接受他們(處理等)後的文件,然後你可以將它們保存所有在一個文件夾服務器1上,並設置一個cron到該文件夾​​的內容scp將服務器2。假設您使用的是Linux服務器,所有這些都是最安全有效的方法。

欲瞭解更多信息,請看看http://en.wikipedia.org/wiki/Secure_copy或谷歌SCP。

1

機1上的使用SSHFS映射一個文件路徑機2(使用SSH)和上傳的文件保存到機器2的文件被上傳之後,觸發機2做加工並報告爲正常。

這將允許你上傳到機1臺,但實際上它傳輸到機器2的HD,因此它可以被處理機器上更快。

這將是比任何SQL或手動文件複製解決方案更快,因爲當用戶上傳文件的文件傳輸發生。

相關問題