Explorar o código

上传mp3音乐

duqinya %!s(int64=5) %!d(string=hai) anos
pai
achega
06f820bced
Modificáronse 4 ficheiros con 37 adicións e 4 borrados
  1. 30 0
      app/Http/Controllers/UploadController.php
  2. 1 0
      bootstrap/app.php
  3. 5 4
      composer.json
  4. 1 0
      routes/api.php

+ 30 - 0
app/Http/Controllers/UploadController.php

@@ -2,6 +2,7 @@
 
 namespace App\Http\Controllers;
 
+use Acekyd\LaravelMP3\LaravelMP3;
 use Illuminate\Http\Request;
 use Illuminate\Support\Facades\Log;
 use Illuminate\Support\Facades\Storage;
@@ -78,4 +79,33 @@ class UploadController extends Controller
         }
 
     }
+
+    public function uploadMp3(Request $request)
+    {
+        if ($request->hasFile('mp3') && $request->file('mp3')->isValid()) {
+            $path = 'music' . '/';
+            //获取文件的扩展名
+            $kuoname = $request->file('mp3')->getClientOriginalExtension();
+
+            //获取文件的绝对路径,但是获取到的在本地不能打开
+            $filePath = $request->file('mp3')->getRealPath();
+            //计算音乐时长
+            $laravel_mp3 = new LaravelMP3();
+            $details = $laravel_mp3->getDuration($filePath);
+            Log::debug('文件类型'.$kuoname);
+            //要保存的文件名 时间+扩展名
+            $filename = time() . '_' . uniqid() . '*' . $kuoname;
+
+            $mp3Url = Storage::put($path . $filename, file_get_contents($filePath));
+            Log::debug('upload_url:' . $mp3Url);
+            if ($mp3Url) {
+                $data = ['url' => config('customer.chxq_oss_url') . $path . $filename,'music_duration' => $details];
+                return $data;
+            } else {
+                return 'mp3上传失败,请重试';
+            }
+        } else {
+            return '仅支持mp3上传,请重试';
+        }
+    }
 }

+ 1 - 0
bootstrap/app.php

@@ -86,6 +86,7 @@ $app->register(Dingo\Api\Provider\LumenServiceProvider::class);
 $app->register(Tymon\JWTAuth\Providers\LumenServiceProvider::class);
 $app->register(\Junliuxian\AliOSS\AliOssServiceProvider::class);
 $app->register(\Intervention\Image\ImageServiceProvider::class);
+$app->register(Acekyd\LaravelMP3\LaravelMP3ServiceProvider::class);
 
 /*
 |--------------------------------------------------------------------------

+ 5 - 4
composer.json

@@ -6,18 +6,19 @@
     "type": "project",
     "require": {
         "php": ">=7.1.3",
+        "acekyd/laravelmp3": "^1.0",
         "dingo/api": "^2.2",
         "doctrine/dbal": "^2.9",
+        "guzzlehttp/guzzle": "^6.3",
         "hhxsv5/laravel-s": "~3.4.0",
+        "intervention/image": "^2.4",
         "jeroendesloovere/distance": "1.0.2.1",
         "junliuxian/ali-oss-storage": "~2.0",
-        "intervention/image": "^2.4",
         "laravel/lumen-framework": "5.8.*",
-        "tymon/jwt-auth": "1.0.0-rc.4.1",
         "multilinguals/apollo-client": "^0.1.2",
-        "vlucas/phpdotenv": "^3.3",
         "php-amqplib/php-amqplib": "^2.9",
-        "guzzlehttp/guzzle": "^6.3"
+        "tymon/jwt-auth": "1.0.0-rc.4.1",
+        "vlucas/phpdotenv": "^3.3"
     },
     "require-dev": {
         "fzaninotto/faker": "^1.4",

+ 1 - 0
routes/api.php

@@ -26,6 +26,7 @@ $api->version('v1', [
         //上传
         $api->post('upload', 'UploadController@uploadImage');
         $api->post('multi_upload', 'UploadController@uploadImages');
+        $api->post('upload/mp3', 'UploadController@uploadMp3');
 
         //自提点列表
         $api->get('/pickupNode/index', 'ConfigPickupNodeController@index');