소스 검색

Merge branch 'develop'

wzq 5 년 전
부모
커밋
d39f432f4d
2개의 변경된 파일89개의 추가작업 그리고 1개의 파일을 삭제
  1. 86 0
      app/Http/Controllers/UploadController.php
  2. 3 1
      routes/api.php

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

@@ -7,6 +7,8 @@ use Illuminate\Http\Request;
 use Illuminate\Support\Facades\Log;
 use Illuminate\Support\Facades\Storage;
 use Intervention\Image\Facades\Image;
+use Illuminate\Support\Facades\Validator;
+use Tymon\JWTAuth\Facades\JWTAuth;
 
 class UploadController extends Controller
 {
@@ -46,6 +48,29 @@ class UploadController extends Controller
         }
     }
 
+    public function uploadStream(Request $request)
+    {
+        if ($request->hasFile('image') && $request->file('image')->isValid()) {
+            $path = $request->get('path') ? $request->get('path') . '/' : date('Ym') . '/';
+            //获取文件的扩展名
+            $kuoname = $request->file('image')->getClientOriginalExtension();
+            //获取文件的绝对路径,但是获取到的在本地不能打开
+            $filePath = $request->file('image')->getRealPath();
+            //要保存的文件名 时间+扩展名
+            $fileurl = $filename = time() . '_' . uniqid() . '.' . $kuoname;
+            $imageUrl = Storage::put($path . $filename, file_get_contents($filePath));
+            if ($imageUrl) {
+                return [
+                    'data' => ['url' => $path . $fileurl]
+                ];
+            } else {
+                return $this->response->error('上传失败,请重试', 500);
+            }
+        } else {
+            return $this->response->error('上传失败,请重试', 500);
+        }
+    }
+
     public function uploadImages(Request $request)
     {
         $path = $request->get('path') ? $request->get('path') . '/' : date('Ym') . '/';
@@ -112,4 +137,65 @@ class UploadController extends Controller
             return '仅支持mp3上传,请重试';
         }
     }
+
+    /**
+     * 处理批量上传
+     */
+    public function uploadImagesChange(Request $request)
+    {
+        $validator = Validator::make($request->all(), [
+            'imgs' => 'required_if:type,image|array|max:9',
+            'imgs.*' => 'required|url',
+        ]);
+        if ($validator->fails()) {
+            return $this->response->error($validator->errors()->first(), 500);
+        }
+        $data = [];
+        foreach($request['imgs'] as $img){
+            $res = $this->uploadOneImage($img);
+            if(!isset($res['data']['url'])){
+                return $this->response->error('上传失败,请重试', 500);
+            }
+            $data[] = config('customer.chxq_oss_url').$res['data']['url'];
+        }
+        return  [
+            'data' => $data
+        ];
+    }
+
+    public function uploadOneImage($img) {
+        $path = public_path('image');
+        if (!file_exists($path)){
+            mkdir ($path,0777,true);
+        }
+        $fileUrl = $path.date('/Ymd').time(). uniqid() .'.jpg';
+        $content = file_get_contents($img);
+        file_put_contents($fileUrl, $content);
+
+
+        try {
+            $url = config("customer.manage_service_url").'/config/upload';
+            $array = [
+                'multipart' => [
+                    [
+                        'name'     => 'image',
+                        'contents' => fopen($fileUrl, 'r'),
+                        'headers'  => ['X-Baz' => 'bar'],
+                        'filename' => $fileUrl
+                    ]
+                ],
+                'query' => [],
+                'http_errors' => false,
+                'headers'=>['Authorization'=>"Bearer ".JWTAuth::getToken()]
+            ];
+            $client = new \GuzzleHttp\Client();
+            $response = $client->request('post', $url, $array);
+            $result = json_decode($response->getBody()->getContents(), true);
+        } catch (\Exception $e) {
+            $result = '';
+        }
+        unlink($fileUrl);
+        return $result;
+
+    }
 }

+ 3 - 1
routes/api.php

@@ -19,7 +19,7 @@ $api->version('v1', [
     //百度编辑器
     $api->get('ueupload', 'UeditorController@index');
     $api->post('ueupload', 'UeditorController@index');
-
+    $api->post('uploadfile', 'UploadController@uploadStream');
     $api->group(['middleware' => 'jwt.chxq_auth'], function ($api) {
         $api->get('user', 'UserController@index');
 
@@ -28,6 +28,8 @@ $api->version('v1', [
         $api->post('multi_upload', 'UploadController@uploadImages');
         $api->post('upload/mp3', 'UploadController@uploadMp3');
 
+        $api->post('multi_upload_change', 'UploadController@uploadImagesChange');
+
         //自提点列表
         $api->get('/pickupNode/index', 'ConfigPickupNodeController@index');
         //自提点新建