Laravel 5.1使用存储将文件移动到公共文件夹

时间:2016-07-28 05:56:27

标签: php laravel laravel-5.1

在我的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附近使用双引号,但没有成功。

1 个答案:

答案 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',
    ],