国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

AetherUpload:大文件秒傳插件,移植自Laravel擴(kuò)展包

v1.0.2 版本
2022-08-24 版本更新時(shí)間
147 安裝
11 star

簡介

本項(xiàng)目移植自AetherUpload-Laravel

提供超大文件上傳,支持斷線續(xù)傳、秒傳、自定義中間件、自定義路由、分組配置等功能,簡單易用,滿足多數(shù)人的主流需求。無感知化的設(shè)計(jì)理念,可實(shí)現(xiàn)由擴(kuò)展自動(dòng)接管上傳和訪問請求,開發(fā)者專注于業(yè)務(wù),無需關(guān)心上傳流程,無需編寫適配代碼,幾乎開箱即用,節(jié)省大量開發(fā)時(shí)間?,F(xiàn)已基于Laravel擴(kuò)展包移植為Webman插件。

功能特性

  • 百分比進(jìn)度條
  • 文件類型限制
  • 文件大小限制
  • 多語言支持
  • 資源分組配置
  • 上傳完成事件
  • 同步上傳
  • 斷線續(xù)傳
  • 文件秒傳
  • 自定義中間件
  • 自定義路由
  • 寬松模式

①:同步上傳相比異步上傳,在上傳帶寬足夠大的情況下速度稍慢,但同步可在上傳同時(shí)進(jìn)行文件的拼合,而異步因文件塊上傳完成的先后順序不確定,需要在所有文件塊都完成時(shí)才能拼合,將會導(dǎo)致異步上傳在接近完成時(shí)需等待較長時(shí)間。同步上傳每次只有一個(gè)文件塊在上傳,在單位時(shí)間內(nèi)占用服務(wù)器的內(nèi)存較少,相比異步方式可支持更多人同時(shí)上傳。

②:斷線續(xù)傳和斷點(diǎn)續(xù)傳不同,斷線續(xù)傳是指遇到斷網(wǎng)或無線網(wǎng)絡(luò)不穩(wěn)定時(shí),在不關(guān)閉頁面的情況下,上傳組件會定時(shí)自動(dòng)重試,一旦網(wǎng)絡(luò)恢復(fù),文件會從未上傳成功的那個(gè)文件塊開始繼續(xù)上傳。斷線續(xù)傳在刷新頁面或關(guān)閉后重開是無法續(xù)傳的,之前上傳的部分已成為無效文件。

③:文件秒傳需服務(wù)端Redis和客戶端瀏覽器支持(FileReader、File.slice()),兩者缺一則秒傳功能無法生效。默認(rèn)關(guān)閉,需在配置文件中開啟。

④:結(jié)合自定義中間件,可對已上傳資源的訪問、下載行為進(jìn)行權(quán)限控制。

安裝

0 在終端內(nèi)切換到你的webman項(xiàng)目根目錄,執(zhí)行composer require peinhu/aetherupload-webman ^1.0

1 在瀏覽器訪問http://域名/aetherupload可到達(dá)示例頁面

提示:更改相關(guān)配置選項(xiàng)請編輯config/plugin/peinhu/aetherupload-webman/app.php。

使用

文件上傳

參考示例文件及注釋部分,在需要上傳大文件的頁面引入相應(yīng)文件和代碼。
可使用自定義中間件來對文件上傳進(jìn)行額外過濾,還可使用上傳完成事件對上傳的文件進(jìn)一步處理。

分組配置

在配置文件的groups下新增分組,運(yùn)行php webman aetherupload:groups自動(dòng)創(chuàng)建對應(yīng)目錄。

自定義中間件

參考Webman文檔路由中間件部分,創(chuàng)建你的中間件并將你編寫的中間件名稱填入配置文件對應(yīng)部分,如[app\middleware\MiddlewareA::class,app\middleware\MiddlewareB::class]。

上傳完成事件

分為上傳完成前和上傳完成后事件,參考Webman文檔常用組件Event事件部分,為'aetherupload.before_upload_complete''aetherupload.upload_complete'配置對應(yīng)的事件處理類,在本插件配置文件app.php中將groups下相應(yīng)選項(xiàng)設(shè)置為true。

添加秒傳功能(需Redis及瀏覽器支持)

參考Webman文檔Redis部分,安裝所需依賴。安裝Redis并啟動(dòng)服務(wù)。安裝predis包composer require predis/predis,在config/redis.php中設(shè)置client為'predis'。

提示:在Redis中維護(hù)了一份與實(shí)際資源文件對應(yīng)的秒傳清單,實(shí)際資源文件的增刪造成的變化均需要同步到秒傳清單中,否則會產(chǎn)生臟數(shù)據(jù),擴(kuò)展包已包含新增部分,當(dāng)刪除資源文件時(shí),使用者需手動(dòng)調(diào)用對應(yīng)方法刪除秒傳清單中的記錄。

\AetherUpload\Util::deleteResource($savedPath); //刪除對應(yīng)的資源文件
\AetherUpload\Util::deleteRedisSavedPath($savedPath); //刪除對應(yīng)的Redis秒傳記錄

使用方便的控制臺命令

php webman aetherupload:groups 列出所有分組并自動(dòng)創(chuàng)建對應(yīng)目錄
php webman aetherupload:build 在Redis中重建資源文件的秒傳清單
php webman aetherupload:clean 2 清除2天前的無效臨時(shí)文件

效果圖(可選)

贊助商