From 926e16bde64c65a7b892071210b59e7723e7785b Mon Sep 17 00:00:00 2001
From: Karson <karsonzhang@163.com>
Date: Thu, 13 Aug 2020 22:37:04 +0800
Subject: [PATCH] 优化分片上传配置开关和分片大小

---
 application/admin/view/common/header.html          | 4 ++--
 application/admin/view/general/attachment/add.html | 6 ------
 application/common/library/Upload.php              | 8 ++++++++
 application/common/model/Config.php                | 2 ++
 application/extra/upload.php                       | 4 ++++
 public/assets/js/require-upload.js                 | 5 +++++
 6 files changed, 21 insertions(+), 8 deletions(-)

diff --git a/application/admin/view/common/header.html b/application/admin/view/common/header.html
index a6cbd02..207af2d 100755
--- a/application/admin/view/common/header.html
+++ b/application/admin/view/common/header.html
@@ -65,7 +65,7 @@
                 <!-- 账号信息下拉框 -->
                 <li class="dropdown user user-menu">
                     <a href="#" class="dropdown-toggle" data-toggle="dropdown">
-                        <img src="{$admin.avatar|cdnurl|htmlentities}" class="user-image" alt="{$admin.nickname|htmlentities}">
+                        <img src="{$admin.avatar|cdnurl|htmlentities}" class="user-image" alt="">
                         <span class="hidden-xs">{$admin.nickname|htmlentities}</span>
                     </a>
                     <ul class="dropdown-menu">
@@ -112,4 +112,4 @@
         </ul>
     </div>
     {/if}
-</nav>
\ No newline at end of file
+</nav>
diff --git a/application/admin/view/general/attachment/add.html b/application/admin/view/general/attachment/add.html
index 8625220..edcdd81 100644
--- a/application/admin/view/general/attachment/add.html
+++ b/application/admin/view/general/attachment/add.html
@@ -11,9 +11,6 @@
         <label for="c-third" class="control-label col-xs-12 col-sm-2"></label>
         <div class="col-xs-12 col-sm-8">
             <button type="button" id="faupload-third" class="btn btn-danger faupload" data-multiple="true" data-input-id="c-third" ><i class="fa fa-upload"></i> {:__("Upload to third")}</button>
-            {if config('upload.chunking')}
-            <button type="button" id="faupload-third-chunk" class="btn btn-danger faupload" data-chunking="true" data-multiple="true" data-input-id="c-third" ><i class="fa fa-upload"></i> {:__("Upload to third by chunk")}</button>
-            {/if}
         </div>
     </div>
     {/if}
@@ -29,9 +26,6 @@
         <label for="c-local" class="control-label col-xs-12 col-sm-2"></label>
         <div class="col-xs-12 col-sm-8">
             <button type="button" id="faupload-local" class="btn btn-primary faupload" data-input-id="c-local" data-url="{:url('ajax/upload')}"><i class="fa fa-upload"></i> {:__("Upload to local")}</button>
-            {if config('upload.chunking')}
-            <button type="button" id="faupload-local-chunking" class="btn btn-primary faupload" data-chunking="true" data-input-id="c-local" data-url="{:url('ajax/upload')}"><i class="fa fa-upload"></i> {:__("Upload to local by chunk")}</button>
-            {/if}
         </div>
     </div>
 
diff --git a/application/common/library/Upload.php b/application/common/library/Upload.php
index b759d3c..f526bdf 100644
--- a/application/common/library/Upload.php
+++ b/application/common/library/Upload.php
@@ -174,6 +174,14 @@ class Upload
         var_dump($array);
     }
 
+    /**
+     * 合并分片文件
+     * @param string $chunkid
+     * @param int    $chunkcount
+     * @param string $filename
+     * @return attachment|\think\Model
+     * @throws UploadException
+     */
     public function merge($chunkid, $chunkcount, $filename)
     {
         $filePath = $this->chunkDir . DS . $chunkid;
diff --git a/application/common/model/Config.php b/application/common/model/Config.php
index d8efa4e..8e3173b 100644
--- a/application/common/model/Config.php
+++ b/application/common/model/Config.php
@@ -171,6 +171,8 @@ class Config extends Model
             'bucket'    => 'local',
             'maxsize'   => $uploadcfg['maxsize'],
             'mimetype'  => $uploadcfg['mimetype'],
+            'chunking'  => $uploadcfg['chunking'],
+            'chunksize' => $uploadcfg['chunksize'],
             'multipart' => [],
             'multiple'  => $uploadcfg['multiple'],
         ];
diff --git a/application/extra/upload.php b/application/extra/upload.php
index c53b104..905cb3e 100644
--- a/application/extra/upload.php
+++ b/application/extra/upload.php
@@ -30,4 +30,8 @@ return [
      * 是否支持分片上传
      */
     'chunking'  => false,
+    /**
+     * 默认分片大小
+     */
+    'chunksize' => 2097152,
 ];
diff --git a/public/assets/js/require-upload.js b/public/assets/js/require-upload.js
index 2e338a9..9aa6835 100755
--- a/public/assets/js/require-upload.js
+++ b/public/assets/js/require-upload.js
@@ -141,6 +141,9 @@ define(['jquery', 'bootstrap', 'dropzone', 'template'], function ($, undefined, 
                         //上传URL
                         url = url ? url : Config.upload.uploadurl;
                         url = Fast.api.fixurl(url);
+                        var chunking = Config.upload.chunking || false,
+                            chunkSize = Config.upload.chunksize || 2097152;
+
                         //最大可上传文件大小
                         maxsize = typeof maxsize !== "undefined" ? maxsize : Config.upload.maxsize;
                         //文件类型
@@ -190,6 +193,8 @@ define(['jquery', 'bootstrap', 'dropzone', 'template'], function ($, undefined, 
                                 }
                                 return params;
                             },
+                            chunking: chunking,
+                            chunkSize: chunkSize,
                             maxFilesize: maxFilesize,
                             acceptedFiles: mimetype,
                             maxFiles: (maxcount && parseInt(maxcount) > 1 ? maxcount : (multiple ? null : 1)),
--
libgit2 0.24.0