簡體   English   中英

php上傳超大文件的最佳做法

[英]php upload very large file best practice

這個標題有很多問題,但沒有人幫助。 我的應用程序應該處理最大2 GB的文件上傳,並且應該通過瀏覽器完成,而不是像FTP文件上傳器那樣。
我知道應該在php.ini上完成配置設置。 但是我心中有一些問題:

  1. 對於這種文件大小,是否有類似uploadify庫的好的解決方案,還是有更好的選擇?

  2. 由於尺寸較大,可能希望在其中具有暫停/恢復功能。 是否可以通過瀏覽器通過HTTP文件傳輸來實現此功能? 如果是,該怎么辦?

  3. 有人談論某些類型的漏洞,例如DOS ATTACKS 在這種情況下是否是一個嚴重的問題?對此類攻擊有何考慮?

如果還有其他建議和建議,請告訴我。

更新:有人建議使用FTP文件上傳來完成這項工作。 是否應該通過為每個用戶指定一個FTP帳戶來允許他們使用FTP客戶端(例如FileZilla)上傳文件來完成此操作? 如果是這樣,應該如何處理傳入的流程。 例如,我給每個用戶一個目錄,例如/ home / user1,然后他將文件上傳到該目錄中。 現在,我應該如何根據用戶會話數據獲取上載的文件數據並將其保存到數據庫中。
通常,我的意思是如何在此FTP文件上傳系統上編寫腳本?
或如果不可能,請告訴我。

請幫忙。

暫停/恢復不是HTTP上傳的標准功能。

應該有可能使其正常工作,但是只有大量工作才能完成,而且質量可能很不穩定。

要實施恢復,您需要滿足以下條件:

  • 一個可以查詢服務器並詢問已經上傳了多少文件的Javascript前端。
  • Javascript還需要能夠在瀏覽器中將上傳文件分解為多個塊(對於擁有2GB文件的用戶,這將是非常痛苦的),並從先前停止上傳的位置開始進行上傳。
  • 由於HTTP請求一次性發送了整個文件,因此,如果您希望能夠暫停,則Javascript也需要分塊發送,並且具有事件處理程序,如果用戶按下“取消”,該事件處理程序將中止下一個塊。
  • 您的PHP程序會將每個簡歷視為一個完整的新文件上傳,因此它需要知道它正在接收現有文件的新塊,並使用append模式。

如果這聽起來像是一個片狀且易出錯的系統的秘訣,那么您將是對的。 我不想使用這樣的網站來上傳文件。 有太多事情可能出錯。

這里有一個教程可能會有所幫助,但我仍然認為這不是一個好主意。

如果您是我,我會考慮為您的上傳設置(S)FTP服務器。 這將減少很多麻煩。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM