【问题标题】:Copying files from a folder in Laravel从 Laravel 中的文件夹复制文件
【发布时间】:2019-04-05 19:32:09
【问题描述】:

我正在用laravel开发一个CMS,如果我发布品牌网站的页面,我需要在发布之前创建一个文件夹结构。

如果我有 app / themes / default / public 我想复制public 文件夹中的文件并将它们发送到将要创建的文件夹app / websites-published / '. $ content-> nanoid

我该怎么做?

    public function publish(Request $request, Site $site)
    {
        /** @var  $contents */
        $contents = $site->contents;

        /** @var  $content */
        foreach ($contents as $content) {

            // Copiar o Public do THEME - THEME/NOME DO TEMA/PUBLIC - WebsitePublished->Nanoid
            // Conteudo do ex: THEME/PUBLIC
            $copyTheme = storage_path('app/themes/default/public');
            $sendTheme = public_path('app/websites-published/' . $content->nanoid);
            copy($copyTheme, $sendTheme);


            // Copiar o Public do WEBSITE - WebsitePublished->Site:Nanoid
            // Conteudo do ex: WEBSITE/SUZUKI/PUBLIC


            // APP/WEBPUBLISHED
        }

        return $this->viewService->renderContent($request, $content);
    }

【问题讨论】:

  • 你给我们看的代码有什么问题?它会出错吗?它有什么作用吗?它什么都不做吗?继续... giz一个线索
  • 你运行了这段代码吗?你使用的是哪个版本的 Laravel?
  • 答案对你有用吗?

标签: php laravel file


【解决方案1】:

Laravel 有一个文件系统,可以处理大多数系统上的文件操作。 Storage 外观类只能复制单个文件,因此您需要轻松地循环到所有文件,但这是太多的工作,因为类 Filesystem 可以在递归地创建目录时递归地复制或移动整个目录。

要移动整个目录,您必须导入文件系统类:

use Illuminate\Filesystem\Filesystem;

并使用copyDirectory() 方法:

public function publish(Request $request, Site $site)
{
    /** @var  $contents */
    $contents = $site->contents;

    /** @var  $content */
    foreach ($contents as $content) {

        // Copiar o Public do THEME - THEME/NOME DO TEMA/PUBLIC - WebsitePublished->Nanoid
        // Conteudo do ex: THEME/PUBLIC
        $copyTheme = storage_path('app/themes/default/public');
        $sendTheme = public_path('app/websites-published/' . $content->nanoid);
        $filesys = new Filesystem();
        $filesys->moveDirectory($copyTheme, $sendTheme);


        // Copiar o Public do WEBSITE - WebsitePublished->Site:Nanoid
        // Conteudo do ex: WEBSITE/SUZUKI/PUBLIC


        // APP/WEBPUBLISHED
    }

    return $this->viewService->renderContent($request, $content);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-27
    • 2020-06-10
    • 1970-01-01
    • 1970-01-01
    • 2019-10-13
    • 1970-01-01
    • 1970-01-01
    • 2023-01-11
    相关资源
    最近更新 更多