2010-06-02 93 views
5

我對此有一個普遍的問題。上傳許多(2000 +)圖像到服務器的最佳實踐

當你有一個畫廊時,有時候人們需要一次上傳1000張圖片。很可能,它將通過.zip文件完成。將這類事情上傳到服務器的最佳方式是什麼?很多時候,服務器都有超時,需要考慮。我想知道我應該尋找什麼樣的東西,以及處理大量正在上傳的圖像的最佳方式是什麼。

我猜你會允許用戶上傳一個zip文件(假設超時不會影響你),並且這個zip文件被上傳到一個特定的目錄,假設在這種情況下創建一個目錄爲系統中的每個用戶。然後,您將解壓縮服務器上的目錄,並掃描用戶的文件夾以查找包含.jpg或.png或.gif文件(等等)的任何目錄,然後相應地將它們導入到表中。我猜根據文件夾名稱標記。

我可以遇到什麼樣的服務器端故障?

我知道可能有很多問題。即使是一般性的想法,我也可以進一步研究。謝謝!

此外,我會在Ruby on Rails中編程,但我認爲這個問題適用於任何語言。

+0

圖像有多大?你能給我們一個圖像數量的上限嗎? – Cam 2010-06-02 03:21:24

回答

2

沒有理由不能用Web應用程序處理這種事情。有一對夫婦的優秀成分,將這個非常有用的:

  1. Uploadify(基於jQuery /閃光)
  2. plupload(從moxiecode,TinyMCE的人)

他們的理由有用的是,它在第​​一個例子中,它使用一個Flash組件來處理上傳,所以你可以從文件瀏覽器窗口中選擇一組文件(假設沒有人會單獨選擇數千張圖像......),並且使用plupload,與更多的平臺一起支持拖放。

一旦你的界面工作,服務器端的東西只需要能夠處理單獨的上傳,將它們與某種用戶帳戶相關聯,並從那裏它應該是非常簡單的。

關於服務器端問題,這實際上是一個很大的問題,取決於同時使用應用程序的人數,圖像大小以及發生後的任何處理。請記住,在腳本處理它們時,這些文件將保存在臨時位置,並且在完成時將其刪除,或者通過腳本複製到最終存儲位置,因此空間/內存開銷/超時可能是一個問題。

如果圖片尺寸很大,比如raw或tif,那麼這種東西仍然可以與分塊上傳一起工作,但實現某種FTP上傳可能更容易。這是一個模糊的問題,但應該有足夠的空間讓你走;)

+0

謝謝丹普。有很多很好的答案,我會研究它們。謝謝大家! – jim 2010-06-03 22:06:23

1

因爲它已經成爲一個嚴重的應用程序的許多圖像..從而給你的自由,建議在客戶端上運行(像雅虎郵件/ Picassa中一樣),將採取「管理」照顧一個軟件(網絡中斷/恢復支持等)上傳圖像。

對於服務器端,您可以一次處理這些(假設您的客戶端正在以這種方式發送)..因此保持簡單。

+1

一個類似的選擇是,你可以創建一個Java applet或者仍然可以在瀏覽器中運行的東西,而不是建議一個客戶端,但給你更大的客戶端控制權。 – Cam 2010-06-02 03:47:47

1

要麼有一個客戶端應用程序,要麼一些Ajax代碼逐個發送圖像,以防止超時。或者,如果這對公衆不可用。 FTP仍然有效...

1

我建議客戶端應用程序(可能用AIR或Titanium編寫)或告訴用戶FTP是什麼。

deviantArt.com例如提供FTP作爲支付訂閱者的上傳方法,並且它工作得很好。

Flickr改爲擁有它自己的應用程序。 「Flickr上傳者」。