林琦海 4 лет назад
Родитель
Сommit
d5a2bccab7
1 измененных файлов с 62 добавлено и 0 удалено
  1. 62 0
      app-ghs/controllers/UploadController.php

+ 62 - 0
app-ghs/controllers/UploadController.php

@@ -127,4 +127,66 @@ class UploadController extends BaseController
 		}
 	}
 
+
+	//上传图片--小菊
+    public function actionNewSave()
+    {
+        header('Content-type:text/html;charset=utf-8');
+        $base64 = file_get_contents('php://input');
+        $base64_image_content = str_replace("content=", "", urldecode($base64));
+
+        //匹配出图片的格式
+        if (preg_match('/^(data:\s*image\/(\w+);base64,)/', $base64_image_content, $result)) {
+            $type = $result[2];
+            $sjId = 0;
+            $month = date("Ym");
+            $date = date("d");
+            $path = dirUtil::getImgUploadDir() . "/{$sjId}/{$month}/{$date}/";
+            if (!file_exists($path)) {
+                //检查是否有该文件夹,如果没有就创建,并给予最高权限
+                mkdir($path, 0700, true);
+            }
+            $preFileName = stringUtil::uniqueFileName();
+            $newFile = $preFileName . ".{$type}";
+            $fullPathFile = $path . $newFile;
+            if (file_put_contents($fullPathFile, base64_decode(str_replace($result[1], '', $base64_image_content))) == false) {
+                util::fail('上传失败!!');
+            }
+            $img = "uploads/{$sjId}/{$month}/{$date}/" . $newFile;
+            $imgInfo = getimagesize($fullPathFile);
+            $width = $imgInfo[0];
+            $height = $imgInfo[1];
+
+            //如果图片太大,进行压缩,并删除原图
+            if ($width > 800) {
+                $newWidth = 800;
+                $newHeight = ceil((800 * $height) / $width);
+                $preFileName = stringUtil::uniqueFileName();
+                $newFile = $preFileName . ".{$type}";
+                $newFullPathFile = $path . $newFile;
+                Image::thumbnail($fullPathFile, $newWidth, $newHeight)->save($newFullPathFile, ['quality' => 100]);
+                $width = $newWidth;
+                $height = $newHeight;
+                $img = "uploads/{$sjId}/{$month}/{$date}/" . $newFile;
+                unlink($fullPathFile);
+                $fullPathFile = $newFullPathFile;
+            }
+
+            //上传oss  2021.3.18 linqh
+            oss::uploadImage($img,$fullPathFile);
+
+            //生成小图 200px
+            //$smallWidth = 200;
+            //$smallHeight = ceil((200 * $height) / $width);
+            //$smallFullPathFile = $path . $preFileName . '_small.' . $type;
+            //Image::thumbnail($fullPathFile, $smallWidth, $smallHeight)->save($smallFullPathFile, ['quality' => 100]);
+
+            $data = business::formatUploadImg($img);
+
+            $data['shortUrl'] = $img;
+            util::success($data);
+        }
+        util::fail('上传失败!');
+    }
+
 }