public function DataAction($type = '')
 {
     if ($this->request->isPost()) {
         // Export
         if ($type == 'import') {
             $File = $this->FileRoot . trim($this->request->getPost('file'));
             if (!is_file($File)) {
                 $this->response->redirect('Result/err');
             }
             /* Remove Notes */
             $content = file_get_contents($File);
             $content = preg_replace("/\n#\n# TABLE(.*)\\s#\n\n/i", "", $content);
             $sqls = array_filter(explode(";\n", $content));
             foreach ($sqls as $sql) {
                 $sql = trim($sql);
                 if (!empty($sql)) {
                     if ($this->db->execute($sql) == FALSE) {
                         $this->response->redirect('Result/err');
                     }
                 }
             }
             $this->response->redirect('Result/suc/SysDBBackup');
         } elseif ($type == 'delete') {
             $File = new File();
             $File->file_root = $this->FileRoot;
             $Files = json_decode($this->request->getPost('file'));
             if ($File->del('./', $Files)) {
                 $this->response->redirect('Result/suc/SysDBRestore');
             } else {
                 $this->response->redirect('Result/err');
             }
         }
     }
 }
Example #2
0
 /**
  * 上传头像
  */
 public function upload()
 {
     if (isset($_GET['userid']) && isset($GLOBALS['HTTP_RAW_POST_DATA'])) {
         // 根据用户id创建文件夹
         $userid = intval($_GET['userid']);
         $avatardata = $GLOBALS['HTTP_RAW_POST_DATA'];
     } else {
         exit('0');
     }
     $dir1 = ceil($userid / 10000);
     $dir2 = ceil($userid % 10000 / 1000);
     // 创建图片存储文件夹
     $avatarfile = DATA_PATH . 'avatar/';
     $dir = $avatarfile . $dir1 . '/' . $dir2 . '/' . $userid . '/';
     if (!file_exists($dir)) {
         Folder::mk($dir);
     }
     $filename = $dir . $userid . '.zip';
     File::write($filename, $avatardata);
     $archive = new PclZip($filename);
     if ($archive->extract(PCLZIP_OPT_PATH, $dir) == 0) {
         die("Error : " . $archive->errorInfo(true));
     }
     // 判断文件安全,删除压缩包和非jpg图片
     $avatararr = array('180x180.jpg', '30x30.jpg', '45x45.jpg', '90x90.jpg');
     if ($handle = opendir($dir)) {
         while (false !== ($file = readdir($handle))) {
             if ($file !== '.' && $file !== '..') {
                 if (!in_array($file, $avatararr)) {
                     File::delete($dir . $file);
                 } else {
                     $info = @getimagesize($dir . $file);
                     if (!$info || $info[2] != 2) {
                         File::del($dir . $file);
                     }
                 }
             }
         }
         closedir($handle);
     }
     $this->db->where(array('userid' => $userid))->update(array('avatar' => 1));
     exit('1');
 }
Example #3
0
 /**
  * 删除
  * DELETE /share/1
  * @method DELETE_info
  * @author NewFuture
  */
 public function DELETE_infoAction($id = 0)
 {
     $userid = $this->auth();
     if (!($share = ShareModel::where('use_id', $userid)->field('url')->find(intval($id)))) {
         $this->response(0, '您无此分享文件');
     } elseif (!($url = $share['url'])) {
         $this->response(0, '此共享已经删除');
     } elseif ($share->set('url', '')->save()) {
         File::del($url);
         $this->response(1, '删除成功');
     } else {
         $this->response(0, '删除失败');
     }
 }
Example #4
0
 /**
  * 文件删除
  * DELETE /file/1
  * @method DELETE_info
  * @author NewFuture
  */
 public function DELETE_infoAction($id = 0)
 {
     $userid = $this->auth();
     $File = FileModel::where('use_id', '=', $userid)->field('url')->find($id);
     $response['status'] = 0;
     if (!($uri = $File['url'])) {
         $response['info'] = '没有找这个文件';
     } elseif (!File::del($uri)) {
         $response['info'] = '删除出错';
     }
     if ($File->update(['url' => '', 'status' => 0])) {
         $response['status'] = 1;
         $response['info'] = '已经删除';
     } else {
         $response['info'] = '文件状态更新失败';
     }
     $this->response = $response;
 }
Example #5
0
 /**
  * 清除文件夹下所有文件以及文件夹
  *
  * @param string $dir 目录
  * @return boolean
  */
 public static function clear($path)
 {
     $path = self::path($path);
     if (!self::is_dir($path)) {
         return false;
     }
     if (!($handle = @opendir($path))) {
         return false;
     }
     while (false !== ($file = readdir($handle))) {
         if ('.' === $file || '..' === $file) {
             continue;
         }
         $filename = $path . '/' . $file;
         if (self::is_dir($filename)) {
             self::rm($filename);
         } elseif (File::is_file($filename)) {
             File::del($filename);
         }
     }
     @closedir($handle);
     return true;
 }
Example #6
0
File: File.php Project: hubs/yuncms
 /**
  * (non-PHPdoc)
  * @see Cache::delete_value()
  */
 protected function delete_value($key)
 {
     $file = $this->_path($key);
     return File::del($file);
 }