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

tec*_*sea 3 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);
Run Code Online (Sandbox Code Playgroud)

但是我没有将文件移动到 $dest 目录,而是在我的 storage/app 文件夹中使用 $dest 目录名称创建了一个文件夹,并将文件复制到那里。我也尝试过使用双引号,$dest.$newImageName但没有成功。

the*_*len 6

如果您['disks']['public']config/filesystems.php 中有一个数组,您可以执行以下操作:

Storage::disk('public')->move($oldfilename, $dest.$newImageName);
Run Code Online (Sandbox Code Playgroud)

如果你不创建一个看起来像这样的:

    'public' => [
        'driver'     => 'local',
        'root'       => storage_path( 'app/public' ),
        'visibility' => 'public',
    ],
Run Code Online (Sandbox Code Playgroud)

然后你就可以使用带有存储外观的公共“磁盘”。

请注意,您不必再指定绝对路径,Laravel 会知道存储路径是app/public

编辑

另一个可能有效的配置选项:

    'public' => [
        'driver'     => 'local',
        'root'       => public_path(),
        'visibility' => 'public',
    ],
Run Code Online (Sandbox Code Playgroud)