2012-03-02 46 views
1

我正在研究構建一個包含文件上傳元素的Web應用程序。我希望用戶能夠上傳任何類型和相當大尺寸的文件(比如高達100MB)。這將是一個可公開訪問的網站,因此安全性顯然非常重要。要求接受大文件上傳的建議

我已經做了在尋找答案的谷歌搜索的一個體面的數額,但它是很難的時候我真的不知道到底是什麼我在尋找。

我的經驗,主要是用PHP,但我意識到PHP不被認爲是最好的,當涉及到文件上傳,所以我很高興,如果有必要看看其他語言。儘管如果使用PHP的體面解決方案可以實現,那將是更可取的。

當我有這種項目沒有經驗,我也是相當對需要什麼樣的服務器設置爲這樣的應用程序的黑暗。

我已經braistormed一些想法,但我願意讓步的他們,如果不合理:

  • 我想使用亞馬遜S3存儲文件(如果可能,以減少服務器上的負載)
  • 我希望能夠上傳後的文件重命名
  • 我考慮Uploadify(uploadify.com)爲客戶端

基本上,想象我正在尋找建立一個文件 - 發送應用像wetransfer.com或yousendit.com,你會得到一般的想法。

我熟悉所有關於這個主題的99%的帖子在網絡上發佈的PHP文件上傳問題(檢查mime-types,upload_max_filesize,memory_limit等等),但顯然這個項目是一個公平的它超越了普通的普通的頭像上傳腳本。

我知道這是一個巨大的話題,我顯然不希望任何人送給我一個神奇的解決方案,但基本上我正在尋找從哪裏開始一些指針。任何人都可以推薦任何好書,文章或網站,以便我能更好地理解任務的要求嗎?涵蓋從編程到服務器需求的所有內容?即使它只是一個關鍵字或短語列表,我應該使用Google搜索。

在此先感謝!

P.S.我並不是100%確定這是否是正確的StackExchange站點來發布此問題。我也考慮過serverfault.com和webmasters.stackexchange.com。如果您認爲這個問題在其他地方會更好,請讓我知道。

+0

對於有關具體代碼的問題,您的問題*略微太寬泛。我會說它屬於網站管理員。 – hakre 2012-03-02 10:40:01

+0

@hakre謝謝你的建議,我會試試看。 – 2012-03-02 11:08:30

+0

您不需要,如果有足夠的選票,問題將自動移動。 – hakre 2012-03-02 11:09:37

回答

1

如果您通過PHP進行上傳,您需要確保它接受這些大文件。尤其是upload_max_filesize,post_max_size和max_input_time。請參閱POST method uploads以瞭解一般情況。

隨着Resumable.js你可以很好地規避上述限制。它一次上傳100MB的小塊。這允許它跟蹤上傳的內容以允許暫停/恢復上傳。

雖然我從來沒有與Amazon S3的工作,我不相信你可以從任何客戶端上傳數據 - 至少在沒有某種身份驗證。您可能需要通過自己的服務器彙集上傳,才能將其上傳到S3。

+0

感謝您對resumable.js的建議。儘管我只是簡單地看了一下,因爲它依賴於HTML5 File API,但瀏覽器支持將非常有限。但我肯定會給它一個適當的外觀,謝謝。 – 2012-03-02 10:59:19

+0

您可以隨時爲有能力的瀏覽器提供良好的解決方案(HTML5),併爲舊版瀏覽器提供後備(例如使用Flash)。這將被稱爲「漸進式增強」 – rodneyrehm 2012-03-02 11:13:48