国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Drupal 8 結(jié)合Nginx實現(xiàn)文件上傳進度,提高上傳文件性能

SwordFly / 1147人閱讀

摘要:自帶的上傳進度功能,需要擴展支持。于是想到利用的模塊來實現(xiàn)上傳進度。接下來使用模塊替代的文件上傳功能,目的是提高文件上傳的性能。而且可以避免上傳大文件時執(zhí)行超時引起錯誤。新建一個對象,把設(shè)置成剛上傳的文件。

Drupal 8 自帶的上傳進度功能,需要PECL uploadprogress library擴展支持。
安裝后發(fā)現(xiàn)效果還是不太好,不知道什么原因,進度條不能正常顯示,而且上傳較大文件時,速度比較慢。于是想到利用Nginx的uploadprogres模塊來實現(xiàn)上傳進度。

這個模塊需要在編譯安裝的時候加上,編譯安裝請看:編譯安裝Nginx以及配置運行Drupal 8,實現(xiàn)上傳進度功能

搜索了一下,找到一個模塊:FileField Nginx Progress,不過只有Drupal7版本的,于是看了一下代碼,了解了實現(xiàn)思路,根據(jù)這個思路,做了一個Drupal 8版本的出來。
模塊地址:upload_progress

由于Nginx uploadprogress模塊的上傳進度和Drupal自帶的上傳進度獲取方式不同,所以要把從Nginx獲取到的進度信息,轉(zhuǎn)換成Drupal需要的格式,再返回給Drupal前端。

簡單的說一下實現(xiàn)的思路:

定義獲取進度信息的路由

在Nginx里設(shè)置獲取進度信息的URL。

定義一個路由,和對應(yīng)的控制器(controller)。

在控制器里從第一步定義的URL獲取到的信息,轉(zhuǎn)換成Drupal需要的格式,然后返回給前端。

自定義文件控件

基于FileWidget自定義一個文件控件(widget),這樣可以比較方便的覆寫文件處理方法。

覆寫控件的settingsForm方法,目的是實現(xiàn)選擇進度指示器的類型(如果Drupal檢測到?jīng)]有安裝PECL uploadprogress library擴展,不會顯示選擇進度指示器的表單)。

然后覆寫process方法,目的是為表單預(yù)先設(shè)置一些內(nèi)容。Nginx uploadprogress模塊需要表單提交時以QueryString方式提供一個X-Progress-ID,而且還需要把獲取進度信息的URL修改成自定義的路由。這兩個動作都是在這一步完成的。

覆寫value方法,這個方法是提交文件時回調(diào)的方法,后面使用Nginx upload模塊替代PHP的文件上傳功能,會用到這個方法。

設(shè)置進度指示器為進度條

結(jié)構(gòu) --> 內(nèi)容類型 --> 管理表單顯示。把需要進度條的字段的控制器,修改成上面自定義的控制器。

點擊字段后面的齒輪圖標,選擇進度指示器為進度條。

以上步驟完成后,就可以實現(xiàn)進度條功能了。
接下來使用Nginx upload模塊替代PHP的文件上傳功能,目的是提高文件上傳的性能。由于Nginx擴展是使用C語言編寫的,理論上來說會比PHP性能好很多。而且可以避免上傳大文件時PHP執(zhí)行超時引起錯誤。
根據(jù)前面提供的Nginx文章,配置好Nginx之后,就可以進行以下操作。

根據(jù)上面的方法,覆寫value方法。

根據(jù)Nginx里自定義的字段信息,獲取POST內(nèi)容(文件名,路徑,大小,類型等)。

把文件移動到目標目錄。

新建一個File對象,把uri設(shè)置成剛上傳的文件。

把value方法的input["fid"]值設(shè)置成新創(chuàng)建的File對象的ID。

調(diào)用parent::value方法。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/22511.html

相關(guān)文章

  • Drupal 8 結(jié)合Nginx實現(xiàn)文件上傳進度提高上傳文件性能

    摘要:自帶的上傳進度功能,需要擴展支持。于是想到利用的模塊來實現(xiàn)上傳進度。接下來使用模塊替代的文件上傳功能,目的是提高文件上傳的性能。而且可以避免上傳大文件時執(zhí)行超時引起錯誤。新建一個對象,把設(shè)置成剛上傳的文件。 Drupal 8 自帶的上傳進度功能,需要PECL uploadprogress library擴展支持。安裝后發(fā)現(xiàn)效果還是不太好,不知道什么原因,進度條不能正常顯示,而且上傳較大...

    keithxiaoy 評論0 收藏0
  • 編譯安裝Nginx以及配置運行Drupal 8實現(xiàn)上傳進度功能

    摘要:下載以及相關(guān)模塊下載以及模塊并解壓。接著執(zhí)行,即可完成編譯安裝。運行需要的配置首先需要在的上下文里增加一條這條是表示每上傳就更新進度信息。 這篇文章的目的是在編譯安裝Nginx的同時,安裝upload和uploadprogress模塊,以及運行Drupal 8所需要的配置。由于使用的是Raspberry pi 3B,所以系統(tǒng)用的Raspbian,Debian/Ubuntu應(yīng)該也是差不多...

    mist14 評論0 收藏0
  • 分布式文件存儲 FastDFS

    摘要:一概念簡述是由淘寶開發(fā)平臺部資深架構(gòu)師余慶開發(fā),是一個輕量級高性能的開源分布式文件系統(tǒng),用純語言開發(fā),包括文件存儲文件同步文件訪問上傳下載存取負載均衡在線擴容相同內(nèi)容只存儲一份等功能,適合有大容量存儲需求的應(yīng)用或系統(tǒng)。故障恢復(fù)后,再次奪回。 一、概念簡述 FastDFS 是由淘寶開發(fā)平臺部資深架構(gòu)師余慶開發(fā),是一個輕量級、高性能的開源分布式文件系統(tǒng)( Distributed File ...

    AlphaWallet 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<