Przeglądaj źródła

添加上传封面图功能

qiuzijian 3 lat temu
rodzic
commit
3293c56c4a

+ 2 - 0
.idea/php.xml

@@ -112,6 +112,8 @@
       <path value="$PROJECT_DIR$/vendor/overtrue/pinyin" />
       <path value="$PROJECT_DIR$/vendor/box/spout" />
       <path value="$PROJECT_DIR$/vendor/predis/predis" />
+      <path value="$PROJECT_DIR$/vendor/jacobcyl/ali-oss-storage" />
+      <path value="$PROJECT_DIR$/vendor/aliyuncs/oss-sdk-php" />
     </include_path>
   </component>
   <component name="PhpProjectSharedConfiguration" php_language_level="7.1" />

+ 2 - 0
.idea/video_system.iml

@@ -5,6 +5,7 @@
       <sourceFolder url="file://$MODULE_DIR$/Modules" isTestSource="false" packagePrefix="Modules\" />
       <sourceFolder url="file://$MODULE_DIR$/app" isTestSource="false" packagePrefix="App\" />
       <sourceFolder url="file://$MODULE_DIR$/tests" isTestSource="true" packagePrefix="Tests\" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/aliyuncs/oss-sdk-php" />
       <excludeFolder url="file://$MODULE_DIR$/vendor/box/spout" />
       <excludeFolder url="file://$MODULE_DIR$/vendor/defuse/php-encryption" />
       <excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/cache" />
@@ -15,6 +16,7 @@
       <excludeFolder url="file://$MODULE_DIR$/vendor/guzzlehttp/guzzle" />
       <excludeFolder url="file://$MODULE_DIR$/vendor/guzzlehttp/promises" />
       <excludeFolder url="file://$MODULE_DIR$/vendor/guzzlehttp/psr7" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/jacobcyl/ali-oss-storage" />
       <excludeFolder url="file://$MODULE_DIR$/vendor/laravel/passport" />
       <excludeFolder url="file://$MODULE_DIR$/vendor/lcobucci/jwt" />
       <excludeFolder url="file://$MODULE_DIR$/vendor/league/event" />

+ 129 - 141
.idea/workspace.xml

@@ -2,7 +2,15 @@
 <project version="4">
   <component name="ChangeListManager">
     <list default="true" id="b5beace6-e4f4-419b-8299-c67e17af5998" name="Default Changelist" comment="">
+      <change beforePath="$PROJECT_DIR$/.idea/php.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/php.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/.idea/video_system.iml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/video_system.iml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/Modules/Camera/Http/Controllers/CameraController.php" beforeDir="false" afterPath="$PROJECT_DIR$/Modules/Camera/Http/Controllers/CameraController.php" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Modules/Camera/Routes/web.php" beforeDir="false" afterPath="$PROJECT_DIR$/Modules/Camera/Routes/web.php" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Modules/Camera/Services/CameraServices.php" beforeDir="false" afterPath="$PROJECT_DIR$/Modules/Camera/Services/CameraServices.php" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/composer.json" beforeDir="false" afterPath="$PROJECT_DIR$/composer.json" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/composer.lock" beforeDir="false" afterPath="$PROJECT_DIR$/composer.lock" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/config/filesystems.php" beforeDir="false" afterPath="$PROJECT_DIR$/config/filesystems.php" afterDir="false" />
     </list>
     <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
     <option name="SHOW_DIALOG" value="false" />
@@ -24,11 +32,11 @@
           </provider>
         </entry>
       </file>
-      <file pinned="false" current-in-tab="true">
+      <file pinned="false" current-in-tab="false">
         <entry file="file://$PROJECT_DIR$/Modules/Camera/Http/Controllers/CameraController.php">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="287">
-              <caret line="52" column="95" selection-start-line="52" selection-start-column="95" selection-end-line="52" selection-end-column="95" />
+            <state relative-caret-position="466">
+              <caret line="455" column="42" selection-start-line="455" selection-start-column="42" selection-end-line="455" selection-end-column="42" />
               <folding>
                 <element signature="e#51#107#0#PHP" expanded="true" />
               </folding>
@@ -37,13 +45,10 @@
         </entry>
       </file>
       <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/Modules/Camera/Services/CameraServices.php">
+        <entry file="file://$PROJECT_DIR$/config/filesystems.php">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="477">
-              <caret line="158" column="58" selection-start-line="158" selection-start-column="58" selection-end-line="158" selection-end-column="58" />
-              <folding>
-                <element signature="e#129#150#0#PHP" expanded="true" />
-              </folding>
+            <state relative-caret-position="424">
+              <caret line="69" column="23" selection-start-line="69" selection-start-column="23" selection-end-line="69" selection-end-column="23" />
             </state>
           </provider>
         </entry>
@@ -51,8 +56,34 @@
       <file pinned="false" current-in-tab="false">
         <entry file="file://$PROJECT_DIR$/Modules/Camera/Routes/web.php">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="231">
-              <caret line="20" column="33" selection-start-line="20" selection-start-column="16" selection-end-line="20" selection-end-column="33" />
+            <state relative-caret-position="336">
+              <caret line="25" column="15" selection-start-line="25" selection-start-column="15" selection-end-line="25" selection-end-column="15" />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/storage/logs/laravel-2021-08-10.log">
+          <provider selected="true" editor-type-id="text-editor" />
+        </entry>
+      </file>
+      <file pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/Modules/Admin/Auxiliary/View/FromAuxiliary.php">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="260">
+              <caret line="226" column="20" selection-start-line="226" selection-start-column="20" selection-end-line="226" selection-end-column="20" />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file pinned="false" current-in-tab="true">
+        <entry file="file://$PROJECT_DIR$/Modules/Camera/Services/CameraServices.php">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="348">
+              <caret line="842" column="30" selection-start-line="842" selection-start-column="30" selection-end-line="842" selection-end-column="30" />
+              <folding>
+                <element signature="e#129#150#0#PHP" expanded="true" />
+              </folding>
             </state>
           </provider>
         </entry>
@@ -61,11 +92,6 @@
   </component>
   <component name="FindInProjectRecents">
     <findStrings>
-      <find>CameraDownload</find>
-      <find>redis</find>
-      <find>getRegionsList</find>
-      <find>degree</find>
-      <find>getHaiKangCamera</find>
       <find>updateOrCreate</find>
       <find>select</find>
       <find>title</find>
@@ -89,8 +115,13 @@
       <find>CameraEnum::CAMERA_SOURCE_3</find>
       <find>getCamerasUrl</find>
       <find>camera_source</find>
-      <find>data-href</find>
       <find>getCamerasList</find>
+      <find>data-href</find>
+      <find>oss</find>
+      <find>OssClient</find>
+      <find>请求上传</find>
+      <find>asset</find>
+      <find>access_id</find>
     </findStrings>
   </component>
   <component name="Git.Settings">
@@ -99,10 +130,6 @@
   <component name="IdeDocumentHistory">
     <option name="CHANGED_PATHS">
       <list>
-        <option value="$PROJECT_DIR$/Modules/Admin/Http/Controllers/LoginController.php" />
-        <option value="$PROJECT_DIR$/Modules/Camera/Database/Migrations/2021_04_26_024115_add_sort_to_camera_list_table.php" />
-        <option value="$PROJECT_DIR$/storage/logs/laravel-2021-04-26.log" />
-        <option value="$PROJECT_DIR$/app/Helpers.php" />
         <option value="$PROJECT_DIR$/app/Console/Commands/StopStreamDelFiles.php" />
         <option value="$PROJECT_DIR$/Modules/Mine/Database/Migrations/2021_04_28_111556_create_mine_list_ext_table.php" />
         <option value="$PROJECT_DIR$/Modules/Mine/Entities/MineListExt.php" />
@@ -148,8 +175,12 @@
         <option value="$PROJECT_DIR$/Modules/Camera/Database/Migrations/2021_08_05_095128_add_code_stream_to_camera_list.php" />
         <option value="$PROJECT_DIR$/Modules/Camera/Enum/CameraEnum.php" />
         <option value="$PROJECT_DIR$/Modules/Camera/Entities/CameraList.php" />
-        <option value="$PROJECT_DIR$/Modules/Camera/Services/CameraServices.php" />
+        <option value="$PROJECT_DIR$/Modules/Camera/Database/Migrations/2021_08_10_102022_add_cover_picture_to_camera_list.php" />
+        <option value="$PROJECT_DIR$/Modules/Camera/Routes/web.php" />
         <option value="$PROJECT_DIR$/Modules/Camera/Http/Controllers/CameraController.php" />
+        <option value="$PROJECT_DIR$/config/filesystems.php" />
+        <option value="$PROJECT_DIR$/storage/logs/laravel-2021-08-10.log" />
+        <option value="$PROJECT_DIR$/Modules/Camera/Services/CameraServices.php" />
       </list>
     </option>
   </component>
@@ -265,6 +296,8 @@
       <path value="$PROJECT_DIR$/vendor/overtrue/pinyin" />
       <path value="$PROJECT_DIR$/vendor/box/spout" />
       <path value="$PROJECT_DIR$/vendor/predis/predis" />
+      <path value="$PROJECT_DIR$/vendor/jacobcyl/ali-oss-storage" />
+      <path value="$PROJECT_DIR$/vendor/aliyuncs/oss-sdk-php" />
     </include_path>
   </component>
   <component name="ProjectFrameBounds" fullScreen="true">
@@ -311,54 +344,13 @@
             <path>
               <item name="video_system" type="b2602c69:ProjectViewProjectNode" />
               <item name="video_system" type="462c0819:PsiDirectoryNode" />
-              <item name="Modules" type="462c0819:PsiDirectoryNode" />
-              <item name="Camera" type="462c0819:PsiDirectoryNode" />
-            </path>
-            <path>
-              <item name="video_system" type="b2602c69:ProjectViewProjectNode" />
-              <item name="video_system" type="462c0819:PsiDirectoryNode" />
-              <item name="Modules" type="462c0819:PsiDirectoryNode" />
-              <item name="Camera" type="462c0819:PsiDirectoryNode" />
-              <item name="Database" type="462c0819:PsiDirectoryNode" />
-            </path>
-            <path>
-              <item name="video_system" type="b2602c69:ProjectViewProjectNode" />
-              <item name="video_system" type="462c0819:PsiDirectoryNode" />
-              <item name="Modules" type="462c0819:PsiDirectoryNode" />
-              <item name="Camera" type="462c0819:PsiDirectoryNode" />
-              <item name="Database" type="462c0819:PsiDirectoryNode" />
-              <item name="Seeders" type="462c0819:PsiDirectoryNode" />
-            </path>
-            <path>
-              <item name="video_system" type="b2602c69:ProjectViewProjectNode" />
-              <item name="video_system" type="462c0819:PsiDirectoryNode" />
-              <item name="Modules" type="462c0819:PsiDirectoryNode" />
-              <item name="Camera" type="462c0819:PsiDirectoryNode" />
-              <item name="Http" type="462c0819:PsiDirectoryNode" />
+              <item name="public" type="462c0819:PsiDirectoryNode" />
             </path>
             <path>
               <item name="video_system" type="b2602c69:ProjectViewProjectNode" />
               <item name="video_system" type="462c0819:PsiDirectoryNode" />
-              <item name="Modules" type="462c0819:PsiDirectoryNode" />
-              <item name="Camera" type="462c0819:PsiDirectoryNode" />
-              <item name="Http" type="462c0819:PsiDirectoryNode" />
-              <item name="Controllers" type="462c0819:PsiDirectoryNode" />
-            </path>
-            <path>
-              <item name="video_system" type="b2602c69:ProjectViewProjectNode" />
-              <item name="video_system" type="462c0819:PsiDirectoryNode" />
-              <item name="Modules" type="462c0819:PsiDirectoryNode" />
-              <item name="Camera" type="462c0819:PsiDirectoryNode" />
-              <item name="Http" type="462c0819:PsiDirectoryNode" />
-              <item name="Controllers" type="462c0819:PsiDirectoryNode" />
-              <item name="Api" type="462c0819:PsiDirectoryNode" />
-            </path>
-            <path>
-              <item name="video_system" type="b2602c69:ProjectViewProjectNode" />
-              <item name="video_system" type="462c0819:PsiDirectoryNode" />
-              <item name="Modules" type="462c0819:PsiDirectoryNode" />
-              <item name="Camera" type="462c0819:PsiDirectoryNode" />
-              <item name="Routes" type="462c0819:PsiDirectoryNode" />
+              <item name="public" type="462c0819:PsiDirectoryNode" />
+              <item name="files" type="462c0819:PsiDirectoryNode" />
             </path>
             <path>
               <item name="video_system" type="b2602c69:ProjectViewProjectNode" />
@@ -415,7 +407,7 @@
     <servers />
   </component>
   <component name="TimeTrackingManager">
-    <option name="totallyTimeSpent" value="337700000" />
+    <option name="totallyTimeSpent" value="346646000" />
   </component>
   <component name="ToolWindowManager">
     <frame x="0" y="0" width="1440" height="900" extended-state="0" />
@@ -446,65 +438,6 @@
     <option name="version" value="1" />
   </component>
   <component name="editorHistoryManager">
-    <entry file="file://$PROJECT_DIR$/Modules/Mine/Entities/MineListExt.php">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="21">
-          <caret line="1" selection-start-line="1" selection-end-line="13" selection-end-column="1" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/Modules/Mine/Database/Migrations/2021_05_26_074955_create_working_surface_table.php">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="231">
-          <caret line="13" column="24" lean-forward="true" selection-start-line="13" selection-start-column="24" selection-end-line="13" selection-end-column="24" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/Modules/Mine/Entities/MineList.php">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="189">
-          <caret line="10" column="33" selection-start-line="10" selection-start-column="24" selection-end-line="10" selection-end-column="33" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/Modules/Admin/Auxiliary/View/FromAuxiliary.php">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="260">
-          <caret line="166" column="53" selection-start-line="166" selection-start-column="45" selection-end-line="166" selection-end-column="53" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/storage/logs/laravel-2021-05-31.log">
-      <provider selected="true" editor-type-id="text-editor" />
-    </entry>
-    <entry file="file://$PROJECT_DIR$/Modules/Mine/Entities/WorkingSurface.php">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="252">
-          <caret line="13" column="1" lean-forward="true" selection-start-line="1" selection-end-line="13" selection-end-column="1" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/Modules/Mine/Entities/WorkingSurfaceCamera.php">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="21">
-          <caret line="1" lean-forward="true" selection-start-line="1" selection-end-line="1" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/Modules/Mine/Database/Migrations/2021_05_31_023512_create_working_sruface_camera_table.php">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="336">
-          <caret line="18" column="84" selection-start-line="18" selection-start-column="84" selection-end-line="18" selection-end-column="84" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/storage/app/menulist.php">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="620">
-          <caret line="189" column="10" lean-forward="true" selection-start-line="131" selection-start-column="6" selection-end-line="189" selection-end-column="10" />
-        </state>
-      </provider>
-    </entry>
     <entry file="file://$PROJECT_DIR$/composer.json">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="231">
@@ -746,13 +679,6 @@
     <entry file="file://$PROJECT_DIR$/storage/logs/laravel-2021-08-02.log">
       <provider selected="true" editor-type-id="text-editor" />
     </entry>
-    <entry file="file://$PROJECT_DIR$/Modules/Camera/Routes/web.php">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="231">
-          <caret line="20" column="33" selection-start-line="20" selection-start-column="16" selection-end-line="20" selection-end-column="33" />
-        </state>
-      </provider>
-    </entry>
     <entry file="file://$PROJECT_DIR$/Modules/Camera/Routes/api.php">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="231">
@@ -798,25 +724,87 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/Modules/Camera/Services/CameraServices.php">
+    <entry file="file://$PROJECT_DIR$/Modules/Camera/Database/Migrations/2021_08_10_102022_add_cover_picture_to_camera_list.php">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="477">
-          <caret line="158" column="58" selection-start-line="158" selection-start-column="58" selection-end-line="158" selection-end-column="58" />
-          <folding>
-            <element signature="e#129#150#0#PHP" expanded="true" />
-          </folding>
+        <state relative-caret-position="546">
+          <caret line="28" column="48" selection-start-line="28" selection-start-column="48" selection-end-line="28" selection-end-column="48" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/Modules/Admin/Auxiliary/View/FromAuxiliary.php">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="260">
+          <caret line="226" column="20" selection-start-line="226" selection-start-column="20" selection-end-line="226" selection-end-column="20" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/bootstrap/app.php">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="-153" />
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/config/app.php">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="-2595" />
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/Modules/Camera/Routes/web.php">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="336">
+          <caret line="25" column="15" selection-start-line="25" selection-start-column="15" selection-end-line="25" selection-end-column="15" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/vendor/symfony/http-foundation/File/UploadedFile.php">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="260">
+          <caret line="100" column="20" selection-start-line="100" selection-start-column="20" selection-end-line="100" selection-end-column="20" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/vendor/jacobcyl/ali-oss-storage/src/AliOssServiceProvider.php">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="166">
+          <caret line="33" column="21" selection-start-line="33" selection-start-column="12" selection-end-line="33" selection-end-column="21" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/config/filesystems.php">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="424">
+          <caret line="69" column="23" selection-start-line="69" selection-start-column="23" selection-end-line="69" selection-end-column="23" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/storage/logs/laravel-2021-08-10.log">
+      <provider selected="true" editor-type-id="text-editor" />
+    </entry>
+    <entry file="file://$PROJECT_DIR$/vendor/aliyuncs/oss-sdk-php/src/OSS/OssClient.php">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="144">
+          <caret line="1696" column="34" lean-forward="true" selection-start-line="1696" selection-start-column="34" selection-end-line="1696" selection-end-column="34" />
         </state>
       </provider>
     </entry>
     <entry file="file://$PROJECT_DIR$/Modules/Camera/Http/Controllers/CameraController.php">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="287">
-          <caret line="52" column="95" selection-start-line="52" selection-start-column="95" selection-end-line="52" selection-end-column="95" />
+        <state relative-caret-position="466">
+          <caret line="455" column="42" selection-start-line="455" selection-start-column="42" selection-end-line="455" selection-end-column="42" />
           <folding>
             <element signature="e#51#107#0#PHP" expanded="true" />
           </folding>
         </state>
       </provider>
     </entry>
+    <entry file="file://$PROJECT_DIR$/Modules/Camera/Services/CameraServices.php">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="348">
+          <caret line="842" column="30" selection-start-line="842" selection-start-column="30" selection-end-line="842" selection-end-column="30" />
+          <folding>
+            <element signature="e#129#150#0#PHP" expanded="true" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
   </component>
 </project>

+ 32 - 0
Modules/Camera/Database/Migrations/2021_08_10_102022_add_cover_picture_to_camera_list.php

@@ -0,0 +1,32 @@
+<?php
+
+use Illuminate\Support\Facades\Schema;
+use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Database\Migrations\Migration;
+
+class AddCoverPictureToCameraList extends Migration
+{
+    /**
+     * Run the migrations.
+     *
+     * @return void
+     */
+    public function up()
+    {
+        Schema::table('camera_list', function (Blueprint $table) {
+            $table->text('cover_picture')->nullable()->comment('封面图片');
+        });
+    }
+
+    /**
+     * Reverse the migrations.
+     *
+     * @return void
+     */
+    public function down()
+    {
+        Schema::table('camera_list', function (Blueprint $table) {
+            $table->dropColumn('cover_picture');
+        });
+    }
+}

+ 20 - 0
Modules/Camera/Http/Controllers/CameraController.php

@@ -7,6 +7,7 @@ use Illuminate\Contracts\Support\Renderable;
 use Illuminate\Http\Request;
 use Illuminate\Routing\Controller;
 use Illuminate\Support\Facades\Log;
+use Illuminate\Support\Facades\Storage;
 use Modules\Admin\Auxiliary\View\FromAuxiliary;
 use Modules\Admin\Auxiliary\View\TableAuxiliary;
 use Modules\Admin\Auxiliary\View\TreeAuxiliary;
@@ -175,6 +176,7 @@ class CameraController extends BaseController
         $formObj->input('com_number', '通道号');
         $formObj->select('code_stream', '视频码流', CameraEnum::CODE_STREAM_EXCHANGE, CameraEnum::CODE_STREAM_SUB);
         $formObj->input('sort', '排序', CameraEnum::DEFAULT_SORT);
+        $formObj->uploadImgs('cover_picture', '封面图片', '/admin/camera/upload/cover_picture', '');
         $formObj->title = '添加请求链接';
         return $this->from($formObj);
     }
@@ -440,4 +442,22 @@ class CameraController extends BaseController
         }
         return $this->success();
     }
+
+    //上传摄像头封面图片
+    public function cameraUploadCpicture(Request $request)
+    {
+//        Log::info($request->file());
+//        Log::info('===============');
+//        Log::info($request->file('image')->getClientOriginalName());
+//        Log::info('===============');
+//        Log::info($request->file('image')->getRealPath());
+        $file = $request->file('image');
+
+        $file_name = CameraServices::uploadFile($file);
+
+        Log::info($file_name);
+
+        $result = CameraServices::uploadOssFile($file_name);
+//        Log::info($result);
+    }
 }

+ 1 - 0
Modules/Camera/Routes/web.php

@@ -23,6 +23,7 @@ Route::prefix('admin')->group(function() {
     Route::post('/camera/list/del', 'CameraController@cameraListDelPost');
     Route::any('/camera/list/import', 'CameraController@cameraListImport');
     Route::get('/camera/list/importTemplate', 'CameraController@cameraListTemplate');
+    Route::post('/camera/upload/cover_picture', 'CameraController@cameraUploadCpicture');
 
     //摄像头链接生成字段管理
 //    Route::get('/camera/field_list', 'CameraController@fieldList');

+ 43 - 0
Modules/Camera/Services/CameraServices.php

@@ -10,6 +10,7 @@ namespace Modules\Camera\Services;
 
 use App\Enum\ApiEnum;
 use Illuminate\Support\Facades\Cache;
+use Illuminate\Support\Facades\Config;
 use Illuminate\Support\Facades\Input;
 use Illuminate\Support\Facades\Log;
 use Modules\Admin\Enum\AdminEnum;
@@ -22,6 +23,7 @@ use Modules\Mine\Entities\MineListExt;
 use Modules\Mine\Entities\WorkingSurfaceCamera;
 use Modules\Mine\Enum\MineEnum;
 use Modules\Mine\Services\MineServices;
+use OSS\OssClient;
 
 class CameraServices
 {
@@ -822,4 +824,45 @@ class CameraServices
         return $result;
     }
 
+    //上传文件到本地
+    public static function uploadFile($file)
+    {
+        $destinationPath = public_path() . '/files/';
+        $extension       = $file->getClientOriginalExtension();
+        $fileName        = time() . '.' . $extension;
+        $file->move($destinationPath, $fileName);
+        return $fileName;
+    }
+
+    //oss上传文件
+    public static function uploadOssFile($file_name)
+    {
+        $file_path = public_path() . '/files/';
+
+        Log::info($file_name);
+        Log::info('-----------');
+        Log::info($file_path . $file_name);
+        try{
+            $oss = new OssClient(
+                Config::get('filesystems.disks.oss_view.access_key'),
+                Config::get('filesystems.disks.oss_view.secret_key'),
+                Config::get('filesystems.disks.oss_view.endpoint')
+            );
+
+            $res = $oss->uploadFile(Config::get('filesystems.disks.oss_view.bucket'), '摄像头封面/oss-' . $file_name, $file_path . $file_name);
+            Log::info($res);
+        } catch(OssException $e) {
+            Log::info($e);
+            printf(__FUNCTION__ . ": FAILED\n");
+            printf($e->getMessage() . "\n");
+            return;
+        }
+
+        if (isset($res['info']['url']) && $res['info']['url']) {
+            return urldecode($res['info']['url']);
+        } else {
+            return false;
+        }
+    }
+
 }

+ 1 - 0
composer.json

@@ -12,6 +12,7 @@
         "box/spout": "^3.2",
         "doctrine/dbal": "^2.13",
         "fideloper/proxy": "^4.0",
+        "jacobcyl/ali-oss-storage": "^2.1",
         "laravel/framework": "5.8.*",
         "laravel/passport": "^7.0",
         "laravel/tinker": "^1.0",

+ 105 - 1
composer.lock

@@ -4,9 +4,56 @@
         "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
         "This file is @generated automatically"
     ],
-    "content-hash": "097b0f819d127884a1bac4a2f3fd886a",
+    "content-hash": "06293d8ded0996327482de76f3c8f170",
     "packages": [
         {
+            "name": "aliyuncs/oss-sdk-php",
+            "version": "v2.4.2",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/aliyun/aliyun-oss-php-sdk.git",
+                "reference": "0c9d902c33847c07efc66c4cdf823deaea8fc2b6"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/aliyun/aliyun-oss-php-sdk/zipball/0c9d902c33847c07efc66c4cdf823deaea8fc2b6",
+                "reference": "0c9d902c33847c07efc66c4cdf823deaea8fc2b6",
+                "shasum": "",
+                "mirrors": [
+                    {
+                        "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+                        "preferred": true
+                    }
+                ]
+            },
+            "require": {
+                "php": ">=5.3"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "*",
+                "satooshi/php-coveralls": "*"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "OSS\\": "src/OSS"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Aliyuncs",
+                    "homepage": "http://www.aliyun.com"
+                }
+            ],
+            "description": "Aliyun OSS SDK for PHP",
+            "homepage": "http://www.aliyun.com/product/oss/",
+            "time": "2021-06-04T06:55:06+00:00"
+        },
+        {
             "name": "box/spout",
             "version": "v3.2.0",
             "source": {
@@ -1149,6 +1196,63 @@
             "time": "2021-03-21T16:25:00+00:00"
         },
         {
+            "name": "jacobcyl/ali-oss-storage",
+            "version": "2.1.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/jacobcyl/Aliyun-oss-storage.git",
+                "reference": "c0cb9ba1d3faf22a1e04a03602aac90a187b5959"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/jacobcyl/Aliyun-oss-storage/zipball/c0cb9ba1d3faf22a1e04a03602aac90a187b5959",
+                "reference": "c0cb9ba1d3faf22a1e04a03602aac90a187b5959",
+                "shasum": "",
+                "mirrors": [
+                    {
+                        "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+                        "preferred": true
+                    }
+                ]
+            },
+            "require": {
+                "aliyuncs/oss-sdk-php": "~2.0"
+            },
+            "type": "library",
+            "extra": {
+                "laravel": {
+                    "providers": [
+                        "Jacobcyl\\AliOSS\\AliOssServiceProvider"
+                    ]
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Jacobcyl\\AliOSS\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "jacobcyl",
+                    "email": "cyl.jacob@gmail.com"
+                }
+            ],
+            "description": "aliyun oss filesystem storage for laravel 5+",
+            "homepage": "http://jacobcyl.github.io/Aliyun-oss-storage/",
+            "keywords": [
+                "aliyun",
+                "filesystems",
+                "laravel",
+                "oss",
+                "storage"
+            ],
+            "time": "2018-04-02T03:44:01+00:00"
+        },
+        {
             "name": "laravel/framework",
             "version": "v5.8.38",
             "source": {

+ 10 - 0
config/filesystems.php

@@ -64,6 +64,16 @@ return [
             'url' => env('AWS_URL'),
         ],
 
+        'oss_view' => [
+            'driver'     => 'oss',
+            'root'       => '',
+            'access_key' => 'LTAICf62eG5csLjc',//env('OSS_ACCESS_KEY'),
+            'secret_key' => 'ZkWb0KW2sunAGQnt0k3SDtYrOb7GeQ',//env('OSS_SECRET_KEY'),
+            'endpoint'   => 'oss-cn-beijing.aliyuncs.com',//env('OSS_ENDPOINT'), // 使用 ssl 这里设置如: https://oss-cn-beijing.aliyuncs.com
+            'bucket'     => 'jiewei-php-view-files',//'http://colliery-system.oss-cn-qingdao.aliyuncs.com',//env('OSS_BUCKET'),
+            'isCName'    => false,//env('OSS_IS_CNAME', false), // 如果 isCname 为 false,endpoint 应配置 oss 提供的域名如:`oss-cn-beijing.aliyuncs.com`,否则为自定义域名,,cname 或 cdn 请自行到阿里 oss 后台配置并绑定 bucket
+        ],
+
     ],
 
 ];