2017-02-23 17 views
-1

我正在開發一個cakephp3.0 web應用程序。那裏有一個上傳視頻頁面。用戶可以上傳n個最大2GB的視頻。因此,我將視頻作爲多部分上傳,但按照順序進行。就像使用for循環進行迭代一樣,第一個視頻將會出現,然後第二個視頻會出現,但問題是用戶需要等待很長時間才能完成此上傳任務並獲得響應。我想以併發的方式上傳,比如同時在不同的隊列中上傳多個視頻。以便上傳可以很快完成。有什麼辦法可以在php中進行多處理。在php中處理Parlel

+3

一個TCP連接應該最大程度的發揮客戶端和服務器之間的可用上傳帶寬。並行上傳多個文件*不應快於按順序上傳文件;每次上傳都會變慢。也許在實踐中你會看到一點點不同,但它不應該從順序轉換到並行上傳突然變得「非常快」。如果服務器的帶寬是瓶頸並且並行上傳將分佈在多個服務器上,這隻會有所作爲。但無論如何,客戶可能是瓶頸。 – deceze

+0

像@deceze說的 - 你最大限度地帶寬。如果您使用完全上傳速度上傳1個文件,而使用完整上傳速度上傳10個文件,您認爲會發生什麼?你仍然在使用完整的上傳速度,不管大小寫是什麼,那麼爲什麼你認爲什麼會更快,PHP和它有什麼關係呢?它甚至不負責接收文件,Web服務器是。 – Mjh

+0

問題是,當用戶上傳很多視頻,如果其他用戶試圖上傳一些其他視頻,他也將在隊列中。所以爲了避免需要適當的管理 –

回答

1

如果您並行上傳,則會將客戶端上傳/服務器下載速度拆分爲並行上傳數。如果您按順序上傳,則雙方都會針對單個文件最大限度地提高此速度。所以你的最終結果將是完全一樣的。

但是,如果您正在進行表單提交,您的用戶瀏覽器將確實被鎖定,直到所有上傳成功爲止。無論如何,你都需要用戶留在那裏,所以這很好,但應該有一些用戶體驗解決方案能夠告訴用戶發生了什麼。

這就是爲什麼你應該攔截你的表單提交,並使用JavaScript做每個上傳(按順序)。然後你可以添加一些UX來讓用戶看到一些進展。

你可以找到與JS這裏上傳更多的信息:

https://w3c.github.io/FileAPI/#FileReader-interface