wesmiler 6 tahun lalu
induk
melakukan
a71c2450f1
1 mengubah file dengan 103 tambahan dan 159 penghapusan
  1. 103 159
      vendor/thinkcmf/cmf-app/src/weixin/model/Stroage.php

+ 103 - 159
vendor/thinkcmf/cmf-app/src/weixin/model/Stroage.php

@@ -1,7 +1,5 @@
 <?php
-
 namespace app\weixin\model;
-
 use cmf\lib\Upload;
 use think\Model;
 use think\Request;
@@ -15,31 +13,30 @@ class Stroage extends Model
      * @param $scene 应用场景
      * @return array|string
      */
-    public static function uploadImg($file, $scene = 'default')
-    {
+    public static function uploadImg($file, $scene='default'){
         $data = [];
         $path = "upload/{$scene}";
-        if (!is_dir($path)) {
+        if(!is_dir($path)){
             mkdir($path, 0755, true);
         }
         $fileSize = config('files.imageSize');
-        $fileSize = $fileSize ? $fileSize * 1024 * 1024 : 10 * 1024 * 1024;
-        $info = $file->validate(['size' => $fileSize, 'ext' => 'jpg,jpeg,png,gif'])->move('./' . $path);
-        if ($info) {
-            $filename = str_replace('\\', '/', $info->getSaveName());
+        $fileSize = $fileSize? $fileSize*1024*1024 : 10*1024*1024;
+        $info = $file->validate(['size'=>$fileSize,'ext'=>'jpg,jpeg,png,gif'])->move('./'.$path);
+        if($info){
+            $filename = str_replace('\\','/', $info->getSaveName());
             $fileInfo = $info->getInfo();
-            $name = isset($fileInfo['name']) ? $fileInfo['name'] : '';
+            $name = isset($fileInfo['name'])? $fileInfo['name'] : '';
             $fileType = cmf_get_file_extension($name);
             $data = [
-                'name' => $name,
-                'file' => "{$scene}/" . $filename,
-                'preview' => cmf_get_image_preview_url("{$scene}/" . $filename),
-                'file_type' => $fileType,
-                'file_size' => isset($fileInfo['size']) ? getFileSize($fileInfo['size']) : 0,
-                'md5_key' => md5_file(cmf_get_image_preview_url("{$scene}/" . $filename)),
-                'total_page' => 1,
+                'name'=> $name,
+                'file'=> "{$scene}/".$filename,
+                'preview'=> cmf_get_image_preview_url("{$scene}/".$filename),
+                'file_type'=> $fileType,
+                'file_size'=> isset($fileInfo['size'])? getFileSize($fileInfo['size']) : 0,
+                'md5_key'=> md5_file(cmf_get_image_preview_url("{$scene}/".$filename)),
+                'total_page'=> 1,
             ];
-        } else {
+        }else{
             return $info;
         }
         return $data;
@@ -51,32 +48,31 @@ class Stroage extends Model
      * @param string $scene
      * @return bool|int|string
      */
-    public static function uploadBaseImg($baseList, $scene = 'default')
-    {
+    public static function uploadBaseImg($baseList, $scene='default'){
         $data = [];
-        $path = "{$scene}/" . date('Ymd') . '/';
-        foreach ($baseList as $k => $item) {
-            if (!is_dir('/public/' . $path)) {
-                mkdir('/public/' . $path, 755, true);
+        $path = "{$scene}/".date('Ymd').'/';
+        foreach($baseList as $k => $item){
+            if(!is_dir('/public/'.$path)){
+                mkdir('/public/'.$path, 755, true);
             }
-            $filename = $path . 'P_' . md5(uniqid() . time() . $k) . '.jpg';
-            $src = isset($item['src']) ? $item['src'] : '';
-            if ($src && !preg_match("/default//", $src) && file_put_contents('/public/' . $filename, $src)) {
+            $filename = $path.'P_'.md5(uniqid().time().$k).'.jpg';
+            $src = isset($item['src'])? $item['src'] : '';
+            if($src && !preg_match("/default//", $src) && file_put_contents('/public/'.$filename, $src)){
                 $data[] = [
-                    'name' => isset($item['name']) ? trim($item['name']) : '',
-                    'url' => $filename,
-                    'nums' => isset($item['nums']) ? intval($item['nums']) : 1,
-                    'total_page' => 1,
-                    'file_size' => isset($item['file_size']) ? intval($item['file_size']) : 0,
-                    'file_type' => isset($item['file_type']) ? ltrim($item['file_type'], 'image/') : '',
-                    'type' => isset($item['type']) ? trim($item['type']) : '',
-                    'md5_key' => md5_file(cmf_get_image_preview_url($filename)),
-                    'created_at' => date('Y-m-d H:i:s')
+                    'name'=> isset($item['name'])? trim($item['name']) : '',
+                    'url'=> $filename,
+                    'nums'=> isset($item['nums'])? intval($item['nums']) : 1,
+                    'total_page'=> 1,
+                    'file_size'=> isset($item['file_size'])? intval($item['file_size']) : 0,
+                    'file_type'=> isset($item['file_type'])? ltrim($item['file_type'],'image/') : '',
+                    'type'=> isset($item['type'])? trim($item['type']) : '',
+                    'md5_key'=> md5_file(cmf_get_image_preview_url($filename)),
+                    'created_at'=> date('Y-m-d H:i:s')
                 ];
             }
         }
 
-        if ($data) {
+        if($data){
             return FileLogs::insertAll($data);
         } else {
             return false;
@@ -89,37 +85,36 @@ class Stroage extends Model
      * @param $scene 应用场景
      * @return array|string
      */
-    public static function uploadFile($file, $scene = 'default')
-    {
+    public static function uploadFile($file, $scene='default'){
         $data = [];
         $path = "upload/files/{$scene}";
-        if (!is_dir($path)) {
+        if(!is_dir($path)){
             mkdir($path, 0755, true);
         }
         $fileTypes = config('files.fileTypes');
         $fileSize = config('files.fileSize');
-        $fileSize = $fileSize ? $fileSize * 1024 * 1024 : 30 * 1024 * 1024;
-        $fileTypes = $fileTypes ? $fileTypes : ['doc', 'docx', 'xls', 'xlsx', 'ppt', 'pptx', 'pdf'];
-        $info = $file->validate(['size' => $fileSize, 'ext' => implode(',', $fileTypes)])->move('./' . $path);
-        if ($info) {
-            $filename = str_replace('\\', '/', $info->getSaveName());
+        $fileSize = $fileSize? $fileSize*1024*1024 : 30*1024*1024;
+        $fileTypes = $fileTypes? $fileTypes : ['doc','docx','xls','xlsx','ppt','pptx','pdf'];
+        $info = $file->validate(['size'=> $fileSize, 'ext'=> implode(',', $fileTypes)])->move('./'.$path);
+        if($info){
+            $filename = str_replace('\\','/', $info->getSaveName());
             $fileInfo = $info->getInfo();
-            $name = isset($fileInfo['name']) ? $fileInfo['name'] : '';
+            $name = isset($fileInfo['name'])? $fileInfo['name'] : '';
             $fileType = cmf_get_file_extension($name);
-            $file = "files/{$scene}/" . $filename;
-            if (Stroage::checkFileExists($file)) {
+            $file = "files/{$scene}/".$filename;
+            if(Stroage::checkFileExists($file)){
                 $page = Stroage::getFilePage($file);
-                if (in_array($fileType, ['xls', 'xlsx'])) {
-                    $file = str_replace('.' . $fileType, '.pdf', $file);
+                if(in_array($fileType,['xls','xlsx'])){
+                    $file = str_replace('.'.$fileType,'.pdf', $file);
                 }
                 $data = [
-                    'name' => $name,
-                    'file' => $file,
-                    'preview' => cmf_get_image_preview_url($file),
-                    'file_type' => $fileType,
-                    'file_size' => isset($fileInfo['size']) ? getFileSize($fileInfo['size']) : 0,
-                    'md5_key' => md5_file(cmf_get_image_preview_url($file)),
-                    'total_page' => $page,
+                    'name'=> $name,
+                    'file'=> $file,
+                    'preview'=> cmf_get_image_preview_url($file),
+                    'file_type'=> $fileType,
+                    'file_size'=> isset($fileInfo['size'])? getFileSize($fileInfo['size']) : 0,
+                    'md5_key'=> md5_file(cmf_get_image_preview_url($file)),
+                    'total_page'=> $page,
                 ];
             }
         }
@@ -132,9 +127,8 @@ class Stroage extends Model
      * @param $file
      * @return bool
      */
-    public static function checkFileExists($file)
-    {
-        $file = preg_match("/^files/", $file) ? UPLOAD_PATH . $file : $file;
+    public static function checkFileExists($file){
+        $file = preg_match("/^files/", $file)? UPLOAD_PATH.$file : $file;
         return is_file($file);
     }
 
@@ -144,12 +138,11 @@ class Stroage extends Model
      * @param $fileType
      * @return mixed
      */
-    public static function makeZipFile($file, $fileType)
-    {
-        $filename = str_replace('.' . $fileType, '.zip', $file);
+    public static function makeZipFile($file, $fileType){
+        $filename = str_replace('.'.$fileType,'.zip', $file);
         $zip = new \ZipArchive();
-        $file = UPLOAD_PATH . $file;
-        $zip->open(UPLOAD_PATH . $filename, \ZipArchive::CREATE);   //打开压缩包
+        $file = UPLOAD_PATH.$file;
+        $zip->open(UPLOAD_PATH.$filename,\ZipArchive::CREATE);   //打开压缩包
         $zip->addFile($file, basename($file));   //向压缩包中添加文件
         $zip->close();  //关闭压缩包
         return $filename;
@@ -161,13 +154,12 @@ class Stroage extends Model
      * @param $fileType 文件类型
      * @return bool|mixed
      */
-    public static function moveFileToZip($file, $fileType = '')
-    {
+    public static function moveFileToZip($file, $fileType=''){
         $fileType = getFileType($file);
-        $file = preg_match("/^files/", $file) ? UPLOAD_PATH . $file : $file;
-        $filename = str_replace('.' . $fileType, '.zip', $file);
-        if (copy($file, $filename)) {
-            return str_replace('\\', '/', $filename);;
+        $file = preg_match("/^files/", $file)? UPLOAD_PATH.$file : $file;
+        $filename = str_replace('.'.$fileType,'.zip', $file);
+        if(copy($file, $filename)){
+            return str_replace('\\','/', $filename);;
         }
 
         return false;
@@ -178,17 +170,16 @@ class Stroage extends Model
      * @param $file ZIP压缩文件
      * @return bool|string
      */
-    public static function getZipPageFile($file)
-    {
+    public static function getZipPageFile($file){
         $zip = new \ZipArchive();
-        $file = preg_match("/^files/", $file) ? UPLOAD_PATH . $file : $file;
+        $file = preg_match("/^files/", $file)? UPLOAD_PATH.$file : $file;
         // 中文文件名要使用ANSI编码的文件格式
         if ($zip->open($file) === TRUE) {
             //提取全部文件
-            $file = str_replace('.zip', '', $file);
+            $file = str_replace('.zip','', $file);
             $zip->extractTo($file); //提取部分文件
             $zip->close();
-            return str_replace('\\', '/', $file . '/docProps/app.xml');
+            return str_replace('\\','/', $file.'/docProps/app.xml');
         } else {
             return false;
         }
@@ -198,10 +189,9 @@ class Stroage extends Model
      * 删除文件
      * @param $file
      */
-    public static function deleteFile($file)
-    {
-        $file = preg_match("/^files/", $file) ? UPLOAD_PATH . $file : $file;
-        if (is_file($file)) {
+    public static function deleteFile($file){
+        $file = preg_match("/^files/", $file)? UPLOAD_PATH.$file : $file;
+        if(is_file($file)){
             unlink($file);
         }
     }
@@ -210,13 +200,12 @@ class Stroage extends Model
      * 删除ZIP压缩包以及其解压文件
      * @param $file 压缩奥文件
      */
-    public static function deleteZip($file)
-    {
-        if (is_file($file)) {
+    public static function deleteZip($file){
+        if(is_file($file)){
             Stroage::deleteFile($file);
         }
-        $zipDir = str_replace('.zip', '', $file);
-        if (is_dir($zipDir)) {
+        $zipDir = str_replace('.zip','', $file);
+        if(is_dir($zipDir)){
             deleteDir($zipDir);
         }
     }
@@ -226,51 +215,52 @@ class Stroage extends Model
      * @param $file 文件
      * @return int
      */
-    public static function getFilePage($file)
-    {
+    public static function getFilePage($file){
         set_time_limit(0);
         $fileType = getFileType($file);
 
         // PDF 类型文件
-        if (in_array($fileType, ['pdf'])) {
+        if(in_array($fileType, ['pdf'])){
             return Stroage::getPdfFilePage($file);
         }
 
         // 表格文件转PDF
-        if (in_array($fileType, ['xls', 'xlsx', 'doc', 'docx'])) {
+        // if(in_array($fileType, ['xls','xlsx','doc','docx'])){
+        if(in_array($fileType, ['xls','xlsx'])){
             $file = Stroage::convertFile($file);
             return Stroage::getPdfFilePage($file);
         }
 
         // 其他文件
         $fileTypes = config('files.fileTypes');
-        $fileTypes = $fileTypes ? $fileTypes : ['doc', 'docx', 'ppt', 'pptx'];
-        if (!in_array($fileType, $fileTypes)) {
+        // $fileTypes = $fileTypes? $fileTypes : ['doc','docx','ppt','pptx'];
+        $fileTypes = $fileTypes? $fileTypes : ['ppt','pptx'];
+        if(!in_array($fileType, $fileTypes)){
             return 0;
         }
 
         $zipFile = Stroage::moveFileToZip($file);
-        if (!is_file($zipFile)) {
+        if(!is_file($zipFile)){
             return 0;
         }
 
         // 获取页数文件内容
         $pageFile = Stroage::getZipPageFile($zipFile);
-        if (!is_file($pageFile)) {
+        if(!is_file($pageFile)){
             return 0;
         }
 
         $content = file_get_contents($pageFile);
-        if (empty($content)) {
+        if(empty($content)){
             return 0;
         }
 
         preg_match("/(<Pages>([1-9][0-9]*):?<\/Pages>)|(<Slides>([1-9][0-9]*):?<\/Slides>)|(<vt:i4>([1-9][0-9]*):?<\/vt:i4>)/", $content, $result);
-        $page = $result ? intval(end($result)) : 0;
+        $page = $result? intval(end($result)) : 0;
 
         // 删除处理生成临时压缩包文件
         $deleteTemp = config('print.deleteTemp');
-        if ($deleteTemp) {
+        if($deleteTemp){
             Stroage::deleteZip($zipFile);
         }
 
@@ -278,64 +268,19 @@ class Stroage extends Model
     }
 
     /**
-     * 图片转黑白
-     * @param $file
-     * @return string
-     */
-    public static function filtterColor($file)
-    {
-        $filepath = dirname($file);
-        $newFile = $filepath . '/color_' . basename($file);
-        if (!file_exists('upload/' . $file)) {
-            return false;
-        }
- 
-        @fopen('upload/' . $newFile, 'w+');
-        $im = imagecreatefromjpeg('upload/' . $file);
-        if ($im && imagefilter($im, IMG_FILTER_GRAYSCALE)) {
-            imagepng($im, 'upload/' . $newFile);
-        } else {
-            $newFile = '';
-        }
-
-        imagedestroy($im);
-        return $newFile;
-    }
-
-    /**
-     * 删除打印文件
-     * @param $file
-     */
-    public static function delPrintFile($file){
-        if(!$file){
-            return false;
-        }
-        $filepath = dirname($file);
-        $newFile = $filepath . '/color_' . basename($file);
-        if(file_exists('upload/'.$file)){
-            unlink('upload/'.$file);
-        }
-
-        if(file_exists('upload/'.$newFile)){
-            unlink('upload/'.$newFile);
-        }
-    }
-
-    /**
      * 文件转换
      * @param $file 文件
      * @param string $type 转换类型
      * @return mixed
      */
-    public static function convertFile($file, $type = 'pdf')
-    {
+    public static function convertFile($file, $type='pdf'){
         $fileType = getFileType($file);
-        $pathFile = preg_match("/^files/", $file) ? UPLOAD_PATH . $file : $file;
-        $path = dirname($pathFile) . '/';
-        $filename = str_replace('.' . $fileType, '.pdf', $file);
-        switch ($type) {
+        $pathFile = preg_match("/^files/", $file)? UPLOAD_PATH.$file : $file;
+        $path = dirname($pathFile).'/';
+        $filename = str_replace('.'.$fileType,'.pdf', $file);
+        switch($type){
             case 'pdf':
-                $command = "libreoffice6.3 --headless --invisible --convert-to pdf:writer_pdf_Export --outdir \"{$path}\" \"{$pathFile}\"";
+                $command = "libreoffice6.3 --invisible --convert-to pdf:writer_pdf_Export --outdir \"{$path}\" \"{$pathFile}\"";
                 exec($command);
                 break;
         }
@@ -349,24 +294,23 @@ class Stroage extends Model
      * @param $file 文件
      * @return bool|int
      */
-    public static function getPdfFilePage($file)
-    {
-        $file = preg_match("/^files/", $file) ? UPLOAD_PATH . $file : $file;
-        if (!is_readable($file) || !file_exists($file)) {
+    public static function getPdfFilePage($file){
+        $file = preg_match("/^files/", $file)? UPLOAD_PATH.$file : $file;
+        if(!is_readable($file) || !file_exists($file)){
             return 0;
         }
 
-        $max = 0;
-        $fp = @fopen($file, "r");
-        if (!$fp) {
+        $max=0;
+        $fp = @fopen($file,"r");
+        if(!$fp){
             return 0;
         }
 
-        while (!feof($fp)) {
-            $line = fgets($fp, 255);
-            if (preg_match('/\/Count [0-9]+/', $line, $matches)) {
-                preg_match('/[0-9]+/', $matches[0], $matches2);
-                if ($max < $matches2[0]) $max = $matches2[0];
+        while(!feof($fp)) {
+            $line = fgets($fp,255);
+            if (preg_match('/\/Count [0-9]+/', $line, $matches)){
+                preg_match('/[0-9]+/',$matches[0], $matches2);
+                if ($max<$matches2[0]) $max=$matches2[0];
             }
         }