[英]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.