123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138 |
- <?php
- declare(strict_types=1);
- namespace app\command;
- use DirectoryIterator;
- use SplFileInfo;
- // 引入框架内置类
- use think\console\Command;
- use think\console\Input;
- use think\console\input\Argument;
- use think\console\input\Option;
- use think\console\Output;
- use think\facade\Config;
- use think\File;
- use app\model\FileManager;
- class FileConsole extends Command
- {
- protected function configure()
- {
- // 指令配置
- $this->setName('fileconsole')
- ->addArgument('name', Argument::OPTIONAL, "console name")
- ->addOption('dir', null, Option::VALUE_REQUIRED, 'directory name')
- ->addOption('savedir', null, Option::VALUE_REQUIRED, 'savedir name')
- ->setDescription('the fileconsole command');
- }
- protected function execute(Input $input, Output $output)
- {
- $name = trim($input->getArgument('name'));
- $name = $name ?: 'thinkphp';
- if ($input->hasOption('dir')) {
- $dir = str_replace("\\", '/', app()->getRootPath() . $input->getOption('dir'));
- } else {
- $dir = str_replace("\\", '/', Config::get('filesystem.disks.public.root')) . '/';
- }
- if ($input->hasOption('savedir')) {
- $savedir = str_replace("\\", '/', app()->getRootPath() . $input->getOption('savedir'));
- // 指令输出
- $output->writeln('fileconsole :' . $name . "--dir: " . $dir . '--savedir' . $savedir);
- $this->$name($dir, $savedir);
- } else {
- // 指令输出
- $output->writeln('fileconsole :' . $name . "--dir: " . $dir);
-
- $this->$name($dir);
- }
- $output->writeln("\n..ok");
- }
- public function thinkphp()
- {
- echo "hello thinkphp";
- }
- /**
- * 建立文件管理目录索引(递归遍历目录)
- */
- public function scan($dir)
- {
- echo "test" . $dir;
- }
- /**
- * 图片添加水印
- */
- public function markwater($dir, $savepath = 'test/cpw', $watermark = "test/watermark2.png")
- {
- $source = str_replace("\\", '/', app()->getRootPath() . $watermark);
- $savepath = str_replace("\\", '/', app()->getRootPath() . $savepath);
- if (is_dir($dir)) {
- $dirs = new DirectoryIterator($dir);
- foreach ($dirs as $fileInfo) {
- if ($fileInfo->isDot() || $fileInfo->getFilename() == '.gitignore') {
- continue;
- }
- $filename = $dirs->getPath() . '/' . $fileInfo->getFilename();
- $savename = str_replace("\\", '/', $savepath . '/' . $fileInfo->getFilename());
- echo $filename . "\n";
- echo $savename . "\n";
- $image = \think\Image::open($filename);
- $image->water($source, \think\Image::WATER_NORTHWEST)->save($savename);
- $image = null;
- }
- }
- }
- /**
- * 重置图片文件大小
- */
- public function resize($dir, $savepath = 'test/resize', $xmax = 1000, $ymax = 1000)
- {
- $savepath = str_replace("\\", '/', app()->getRootPath() . $savepath);
-
- if (!file_exists($savepath)) {
- mkdir($savepath, 0755);
- }
- if (is_dir($dir)) {
- $dirs = new DirectoryIterator($dir);
- foreach ($dirs as $fileInfo) {
- if ($fileInfo->isDot() || $fileInfo->getFilename() == '.gitignore') {
- continue;
- }
- $filename = $dirs->getPath() . '/' . $fileInfo->getFilename();
- $savename = str_replace("\\", '/', $savepath . '/' . $fileInfo->getFilename());
- echo $filename . "\n";
- echo $savename . "\n";
- $image = \think\Image::open($filename);
- $image->thumb($xmax, $ymax)->save($savename);
- $image = null;
- }
- }
- }
- }
|