Laravel 5.1 使用存储将文件移动到 public 文件夹
Laravel 5.1 using storage to move the file to a public folder
在我的 Laravel API 调用中,我使用 Storage 上传文件。然后我想重命名文件并将其移动到 public 目录,方法是:
$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 目录名称创建的文件夹,并将文件复制到那里。我也尝试过在 $dest.$newImageName
周围使用双引号,但没有成功。
如果你在 config/filesystems 中有一个数组 ['disks']['public']
。php 你可以这样做:
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',
],
在我的 Laravel API 调用中,我使用 Storage 上传文件。然后我想重命名文件并将其移动到 public 目录,方法是:
$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 目录名称创建的文件夹,并将文件复制到那里。我也尝试过在 $dest.$newImageName
周围使用双引号,但没有成功。
如果你在 config/filesystems 中有一个数组 ['disks']['public']
。php 你可以这样做:
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',
],