【问题标题】:Laravel copyDirectory function not workingLaravel copyDirectory 功能不起作用
【发布时间】:2021-09-24 11:29:17
【问题描述】:
我想将目录复制或移动到 laravel 中的新目录,但 copyDirectory 函数总是返回 false 给我。我的代码有什么问题吗?提前致谢
$destinationDir = 'storage/Components/'.'Compressor'.'/'.$approvedRequest['compressor_model'].'/';
$success = File::copyDirectory(public_path().$approvedRequest['attachment_dir'], public_path().$destinationDir,true);
$compressorUpdate->attachment_dir = $destinationDir;
【问题讨论】:
标签:
php
laravel
laravel-filesystem
【解决方案1】:
我相信当前目录在
storage/Components/Compressor/{$approvedRequest['compressor_model']}/
想要复制到
public/storage/Components/Compressor/{$approvedRequest['compressor_model']}/
这样你就可以简化
$path="Components/Compressor/{$approvedRequest['compressor_model']}/";
$currentDirectory=storage_path($path);
$destinationDir =public_path($path);
$success = File::copyDirectory($currentDirectory,$destinationDir);
【解决方案2】:
我认为您正在尝试复制到符号链接目录。您应该参考目录的真实路径而不是其符号链接。所以请改用storage_path()。
$destinationDir = implode(DIRECTORY_SEPARATOR, ['Components', 'Compressor', $approvedRequest['compressor_model']]);
$success = \File::copyDirectory(
public_path() . $approvedRequest['attachment_dir'],
storage_path() . DIRECTORY_SEPARATOR . $destinationDir, true);
$compressorUpdate->attachment_dir = $destinationDir;