2012-12-18 41 views
1

我打算處理客戶端用來上傳原始圖像/長pdf文件等的大文件(最大2GB)。我在網上閱讀過,PHP並不是最好的解決方案,但我不能讓每一個客戶端都下載一個FTP程序,讓我爲他們創建一個用戶名/目錄,並給他們一個密碼來上傳文件一次。2GB以下文件的PHP Move_uploaded_file()或ftp_put()

我在問的是什麼是更好,更快的功能使用,或者沒有關係? ftp_get()或move_uploaded_file()?有沒有更好的方式,我可以使用PHP來完成這項工作?

我一直在想,因爲它的ftp,ftp_put會更快,更可行,但我不確定這是爲什麼我問這個問題。

感謝您的輸入。

回答

0

這不是一樣的工作。

首先,您的用戶將文件直接上傳到您的服務器,然後使用move_uploaded_file進行處理。

enter image description here

  • 優點:用戶不需要對previousely發送一個FTP服務器上的文件。
  • 缺點:您直接參與通常連接速度較慢的用戶,這要求您允許長時間連接,這有潛在危險。

第二種情況,您的用戶上傳文件到FTP服務器,爲這種上傳而構建。然後,您將下載一個通常在具有良好帶寬和上傳速度的遠程服務器上的文件。

enter image description here

  • 優點:你並不需要配置你的Web服務器來處理很長的連接和非常大的投入,爲安全更好。下載通常會更快,所以用戶會覺得你的服務不是那麼慢。
  • 缺點:你的用戶需要發送一個文件到一個ftp,這對那些甚至不知道它是什麼的人來說並不是很方便。

更好的解決方案應該是根據文件的大小提供兩個選項。

enter image description here

,你把你的FTP在同一服務器作爲網絡的一個,以這樣的方式,可以在文件系統中直接訪問該文件,而不ftp_get,這應該是更快的。

1

上傳文件後,您將始終需要使用move_uploaded_file()。這是將文件從臨時存儲移動到您想要存儲它的位置(通常是應用程序樹中的上傳/目錄)。

ftp_put()將再次將該文件移到另一個FTP服務器。