在我的Laravel API调用中,我使用Storage来上传文件。然后,我希望使用以下命令重命名并将文件移动到公共目录:
$dest = '/var/www/public/uploads/';
Storage::disk('local')->put($filename.'.'.$extension, File::get($file));
$oldfilename = $filename.'.'.$extension;
Storage::move($oldfilename, $dest.$newImageName);
但是我没有将文件移动到$ dest目录,而是在我的storage / app文件夹中创建了一个使用$ dest dir名称创建的文件夹,然后将文件复制到那里。我也尝试在$dest.$newImageName
附近使用双引号,但没有成功。
答案 0 :(得分:4)
如果 config / filesystems.php 中有数组['disks']['public']
,您可以这样做:
Storage::disk('public')->move($oldfilename, $dest.$newImageName);
如果你没有创建一个如下所示:
'public' => [
'driver' => 'local',
'root' => storage_path( 'app/public' ),
'visibility' => 'public',
],
然后你就可以将 public “disk”用于存储外观。
请注意,您不必再指定绝对路径,Laravel将知道存储路径为 app / public 。
修改强>
可能有效的另一个配置选项:
'public' => [
'driver' => 'local',
'root' => public_path(),
'visibility' => 'public',
],