簡體   English   中英

從Laravel中的文件夾復制文件

[英]Copying files from a folder in Laravel

我正在與laravel合作開發CMS,以防萬一我發布品牌網站的頁面,需要在發布之前創建文件夾結構。

如果我有app / themes / default / public我想將文件復制到public文件夾中,然后將它們發送到要在app / websites-published / '. $ content-> nanoid創建的文件夾中app / websites-published / '. $ content-> nanoid 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);
    }

Laravel有一個文件系統,可以處理大多數系統上的文件操作。 Storage Facade類只能復制單個文件,因此您需要輕松地循環訪問所有文件,但是這很繁瑣,因為Filesystem類可以在遞歸創建目錄時遞歸復制或移動整個目錄。

要移動整個目錄,您必須導入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);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM