yingzi 1 yıl önce
ebeveyn
işleme
e9dc427e5d

+ 74 - 11
app/api/controller/User.php

@@ -627,19 +627,12 @@ class User extends BaseController
         }
         $base64 = 'data:'.$reponse['contentType'].';base64,'.base64_encode($data['buffer']);
         
-        
+        $this->uploadImageBase64("wximg",$base64);
         
         return app('json')->success(["data"=>$data,"res"=>\think\facade\Filesystem::disk('resource')]);
     }
     
-    /**
-     * 
-     * @param type $code
-     * @param type $base64
-     */
-    public function uploadImageBase64($code,$base64){
-        
-    }
+    
 
     
     
@@ -649,7 +642,7 @@ class User extends BaseController
      * @return type
      */
     public function upload(Request $request){
-        $uploadConfig = config('upload');
+        $uploadConfig = config('filesystem');
         $sysData = (new SysModel())->where("id",1)->find();
         $file = $request->file('file');
         $code = $request->post("code","image");
@@ -683,7 +676,7 @@ class User extends BaseController
      * @return type
      */
     public function uploadVideo(Request $request){
-        $uploadConfig = config('upload');
+        $uploadConfig = config('filesystem');
         $sysData = (new SysModel())->where("id",1)->find();
         $file = $request->file('file');
         $code = $request->post("code","video");
@@ -706,6 +699,76 @@ class User extends BaseController
         return app('json')->success(['video'=>$imgUrl]);
     }
     
+    /**
+     * base64文件上传
+     * @param type $code
+     * @param type $base64
+     */
+    public function uploadImageBase64($code,$base64){
+        $sysData = (new SysModel())->where("id",1)->find();
+        $uploadConfig = config('filesystem');
+        //验证base64格式
+        preg_match('/^(data:\s*image\/(\w+);base64,)/',$base64, $result);
+        if(!$result){
+            return ["code"=>-1,"msg"=>"base64格式格式错误"];
+        }
+        //验证图片后缀
+        if (!in_array($result[2], $uploadConfig['image']['ext'], true)) {
+            return ["code"=>-1,"msg"=>"不支持的图片格式"];
+        }
+        $rootPath = config('filesystem.disks.resource.root');
+        $hashName = $code.DIRECTORY_SEPARATOR.date('Ymd') . DIRECTORY_SEPARATOR . md5((string) microtime(true)).".".$result[2];
+        $filePath = $rootPath. DIRECTORY_SEPARATOR .$hashName;
+        $path = dirname($filePath);
+        // 检测目录
+        if (!is_dir($path)) {
+            return ["code"=>-1,"msg"=>"上传目录不存在"];
+        }
+        if (!mkdir($path, 0777, true)) {
+            return ["code"=>-1,"msg"=>"生成目录失败"];
+        }
+        //重名文件验证
+        if (is_file($filePath)) {
+            return ["code"=>-1,"msg"=>"文件已存在"];
+        }
+        if(!file_put_contents($filePath, base64_decode(str_replace($result[1], '', $base64)))){
+            return ["code"=>-1,"msg"=>"文件报错失败"];
+        }
+        $savePath = $sysData['system_url'].config('filesystem.disks.resource.url').DIRECTORY_SEPARATOR.$hashName;
+        return ["code"=>1,"url"=>str_replace("\\", "/", $savePath)];
+    }
+    
+    
+//    public function index(Request $request){
+//        $file =$request->file('file');
+//        $isZ = $request->post('isz',1);
+//        if(empty($file)) {
+//            return app('json')->fail("未上传文件");
+//        }
+//        $rootTmp = config('filesystem.disks.local.root') .'/' . \think\facade\Filesystem::putFile( 'tmp', $file);
+//        if($isZ == 1) {
+//            $image_size = @getimagesize($rootTmp);
+//            if ($image_size[0] > 1000) {
+//                $imgS = Image::open($rootTmp);
+//                $imgS->thumb(1000, $image_size[1]);
+//                $imgS->save($rootTmp);
+//            } else {
+//                if ($image_size[1] > 1000) {
+//                    $imgS = Image::open($rootTmp);
+//                    $imgS->thumb($image_size[0], 1000);
+//                    $imgS->save($rootTmp);
+//                }
+//            }
+//        }
+//        $qiniu = new  Qiniu;
+//        $img_url = $qiniu->updateFile('img', $rootTmp, $rootTmp);
+//        if(empty($img_url['url'])){
+//            return app('json')->fail( $qiniu->getError());
+//        }
+//
+//        return app('json')->success(['img'=>$img_url['url']]);
+//    }
+    
    
     
     

+ 1 - 1
app/system/controller/Upload.php

@@ -21,7 +21,7 @@ class Upload extends AuthController{
 
 
     public function index(Request $request){
-        $uploadConfig = config('upload');
+        $uploadConfig = config('filesystem');
         $sysData = (new SysModel())->where("id",1)->find();
         $file = $request->file('file');
         $code = $request->post("code","image");

+ 9 - 0
config/filesystem.php

@@ -31,4 +31,13 @@ return [
             'visibility' => 'public',
         ],
     ],
+    "image"=>[
+        "path"=>["avatar","video","image","circle","advert","goods","activity","icon","wximg"],
+        "ext"=>["png","jpeg","gif","jpg"],
+        "size"=>2//M
+    ],
+    "video"=>[
+        "path"=>["video"],
+        "ext" =>["mp4","megp4"]
+    ],
 ];

+ 0 - 13
config/upload.php

@@ -1,13 +0,0 @@
-<?php
-
-return [
-    "image"=>[
-        "path"=>["avatar","video","image","circle","advert","goods","activity","icon"],
-        "ext"=>["png","jpeg","gif","jpg"],
-        "size"=>2//M
-    ],
-    "video"=>[
-        "path"=>["video"],
-        "ext" =>["mp4","megp4"]
-    ],
-];