You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
aquaculture/app/Console/Commands/CopyFile.php

76 lines
2.4 KiB

<?php
namespace App\Console\Commands; // 定义命名空间
use Illuminate\Filesystem\Filesystem; // 引入 Filesystem 类
use Illuminate\Support\Facades\Storage; // 引入 Storage 门面(未使用,可以考虑移除)
/**
* 复制文件控制台命令
*
* 该命令用于将所有上传的静态资源复制到公共存储目录。
*/
class CopyFile extends BaseCommand
{
/**
* 控制台命令的名称和签名
*
* @var string
*/
protected $signature = 'moon:copy'; // 定义命令的名称和签名
/**
* 控制台命令的描述
*
* @var string
*/
protected $description = 'Copy all upload static resources'; // 描述该命令的用途
/**
* 文件系统实例
*
* @var Filesystem
*/
protected $filesystem; // 声明文件系统实例变量
/**
* 创建一个新的命令实例.
*
* @param Filesystem $filesystem 文件系统实例
*/
public function __construct(Filesystem $filesystem)
{
$this->filesystem = $filesystem; // 注入 Filesystem 实例
parent::__construct(); // 调用父类构造函数
}
/**
* 把静态资源发布到 public/storage 目录
*
* 该方法执行复制静态资源的逻辑,包括产品图片、默认头像和其他静态图片。
*
* @return mixed
*/
public function handle()
{
// 定义图片的静态目录及目标目录
$from = storage_path('app/resources/products'); // 源目录:产品图片
$to = storage_path('app/public/products'); // 目标目录:公共产品图片
$this->filesystem->copyDirectory($from, $to); // 复制产品图片目录
// 复制默认头像
$from = storage_path('app/resources/avatars'); // 源目录:默认头像
$to = storage_path('app/public/avatars'); // 目标目录:公共头像
$this->filesystem->copyDirectory($from, $to); // 复制默认头像目录
// 复制其他静态图片
$from = storage_path('app/resources/images'); // 源目录:其他静态图片
$to = storage_path('app/public/images'); // 目标目录:公共静态图片
$this->filesystem->copyDirectory($from, $to); // 复制其他静态图片目录
// 输出成功信息
$this->info('copy file success'); // 命令执行成功后的提示信息
}
}