huwhois преди 2 години
родител
ревизия
22faa1e11b
променени са 4 файла, в които са добавени 44 реда и са изтрити 36 реда
  1. 20 0
      app/common/model/Article.php
  2. 5 0
      app/common/model/FileManager.php
  3. 11 4
      app/sys/controller/Article.php
  4. 8 32
      app/sys/controller/FileManager.php

+ 20 - 0
app/common/model/Article.php

@@ -169,4 +169,24 @@ class Article extends Base
 
         return $timeList;
     }
+
+    public static function createOne($data)
+    {
+        $article = new static;
+
+        $article->allowField(['cid','title','writer','source','titlepic','keywords','summary','content',
+            'status','sort','hits','content_type','userid','username'])->save($data);
+
+        FileManager::saveInfoid($article->id, $data['cjid']);
+    }
+
+    public static function updateOne($data)
+    {
+        $article = self::find($data['id']);
+
+        $article->allowField(['cid','title','writer','source','titlepic','keywords','summary','content',
+            'status','sort','hits','content_type','userid','username'])->save($data);
+
+        FileManager::saveInfoid($article->id, $data['cjid']);
+    }
 }

+ 5 - 0
app/common/model/FileManager.php

@@ -111,4 +111,9 @@ class FileManager extends \think\Model
 
         return $fileinfo;
     }
+
+    public static function saveInfoid($infoid, $cjid)
+    {
+        self::where('cjid', 'IN', $cjid)->data(['infoid'=>$infoid, 'cjid'=>0])->update();
+    }
 }

+ 11 - 4
app/sys/controller/Article.php

@@ -18,6 +18,7 @@ use think\facade\Config;
 use app\common\model\Category as CategoryModel;
 use app\common\model\Article as ArticleModel;
 use app\common\facade\FileUtils;
+use app\common\model\FileManager as FileManagerModel;
 
 class Article extends Base
 {
@@ -58,19 +59,20 @@ class Article extends Base
 
             $params['content'] =  isset($params['content']) ? $params['content'] : '';
             if ($content_type == 0) {
-                $params['content'] = $this->saveRomteImage($params['content']);
+                $username = $this->getSysUser()->username;
+                $params['content'] = $this->saveRomteImage($params['content'],(int)$params['id'],(int) $params['cjid'], $username);
             }
 
             $params['keywords'] = str_replace(' ', '', $params['keywords']);
 
             try {
                 if ($params['id'] != 0) {
-                    ArticleModel::update($params);
+                    ArticleModel::updateOne($params);
                 } else {
                     $params['userid'] = $this->getSysUser()->userid;
                     $params['username'] = $this->getSysUser()->nickname;
                     unset($params['id']);
-                    ArticleModel::create($params);
+                    ArticleModel::createOne($params);
                 }
             } catch (\Exception $e) {
                 $msg = $e->getMessage();
@@ -99,7 +101,7 @@ class Article extends Base
         }
     }
 
-    protected function saveRomteImage($content)
+    protected function saveRomteImage($content, $infoid=0, $cjid=0, $username='system')
     {
         $content = stripslashes ($content);
         $img_array = [];
@@ -114,6 +116,11 @@ class Article extends Base
             $file = FileUtils::downloadUrlImg($value);
             
             $savename = \think\facade\Filesystem::disk('public')->putFile('/', $file);
+
+            FileManagerModel::saveFileInfo($file, $savename, $file->getOriginalName, $infoid, $cjid, $username);
+
+            // 删除临时文件
+            @unlink($file->getRealPath());
             
             $filename = Config::get('filesystem.disks.public.url') . '/' . str_replace('\\', '/', $savename);
 

+ 8 - 32
app/sys/controller/FileManager.php

@@ -416,38 +416,6 @@ class FileManager extends Base
         }
     }
 
-    public function onlineimg($page)
-    {
-        $files =  FileService::getFiles(Config::get('filesystem.disks.public.root'));
-
-        if (!count($files)) {
-            return json_encode(array(
-                "state" => "no match file",
-                "list" => array(),
-                "start" => $page,
-                "total" => count($files)
-            ));
-        }
-        /* 获取指定范围的列表 */
-        $page = $page - 1 < 0 ? 0 : (int)$page - 1;
-        $size = 20;
-        $start = $page * $size;
-        $end = $start + $size;
-
-        $len = count($files);
-
-        for ($i = min($end, $len) - 1, $list = array(); $i < $len && $i >= 0 && $i >= $start; $i--) {
-            $list[] = $files[$i];
-        }
-
-        return json([
-            "code" => 0,
-            "list" => $list,
-            "page" => $page + 1,
-            "total" => count($files)
-        ]);
-    }
-
     /**
      * 判断(远程)文件是否为图片
      */
@@ -472,6 +440,7 @@ class FileManager extends Base
     {
         if ($this->request->isPost()) {
             $file = $this->request->file('upload');
+
             if ($file) {
                 try {
                     validate(
@@ -491,6 +460,13 @@ class FileManager extends Base
 
                     $savename = \think\facade\Filesystem::disk('public')->putFile('/', $file);
 
+                    $savename = str_replace('\\', '/', $savename);
+                    $infoid   = (int) $this->request->param('infoid');
+                    $cjid     = (int) $this->request->param('cjid');
+                    $username = $this->getSysUser()->username;
+                    
+                    FileManagerModel::saveFileInfo($file, $savename, $file->getOriginalName(), $infoid, $cjid, $username);
+
                     return json([
                         'uploaded' => 1,
                         'fileName' => basename($savename),