咱們知道,在之前,文件上傳採用的是直接傳整個文件的方式,這種方式對付一些小文件是沒有問題的。而當須要上傳大文件時,此種方式不只操做繁瑣,須要修改web服務器和後端語言的配置,並且會大量佔用服務器的內存,致使服務器內存吃緊,嚴重的甚至傳輸超時或文件過大沒法上傳。很顯然,普通的文件上傳方式已沒法知足如今愈來愈高的要求。php
隨着技術的發展,現在咱們能夠利用HTML5的分塊上傳技術來輕鬆解決這個困擾,經過將大文件分割成小塊逐個上傳再拼合,來下降服務器內存的佔用,突破服務器及後端語言配置中的上傳大小限制,可上傳任意大小的文件,同時也簡化了操做,提供了直觀的進度顯示。laravel
AetherUpload-Laravel是一個提供超大文件上傳的Laravel擴展包,支持分組配置、斷線續傳、秒傳、分佈式部署等功能,簡單易用,知足多數人的主流需求。無感知化的設計理念,可實現由擴展自動接管上傳和訪問請求,開發者專一於業務,無需關心上傳流程,無需編寫適配代碼,幾乎開箱即用,節省大量開發時間。git
主要功能特性有:百分比進度條、文件類型和大小限制、分組配置 、自定義中間件、上傳完成事件 、同步上傳、斷線續傳、文件秒傳、分佈式部署。github
解析一下上傳過程,首先發送預處理請求preprocess,用以檢查是否可秒傳,進行文件大小和類型的過濾,預建立指針頭文件和資源文件。而後發送上傳分塊請求uploading,開始文件分塊上傳流程,同時開始合併文件,直到最後一個分塊上傳完畢後,返回完整文件的保存地址,並將此文件加入秒傳記錄中。web
安裝過程至關簡單,無需任何額外配置,僅需30秒時間就可使你的應用支持超大文件上傳。後端
秒傳示例: 在終端內切換到你的laravel項目根目錄,執行composer require peinhu/aetherupload-laravel ~2.0數組
(Laravel 5.5+請跳過)在config/app.php的providers數組中添加一行AetherUpload\AetherUploadServiceProvider::class,瀏覽器
執行php artisan aetherupload:publish來發布一些文件和目錄服務器
在瀏覽器訪問http://域名/aetherupload可到達示例頁面app