首页 > 解决方案 > 设置文件名存储::put

问题描述

我无法在 Laravel 5.8 中使用 Storage::put 设置文件名

我尝试了以下方法:

Storage::put(private/foo/bar , $file, 'private'); 这是创建文件夹结构,其中包含随机生成的文件名。(如:私人/foo/bar/uidjasbknfsdoiruewjnfsdai.pdf)

Storage::put(private/foo/bar/file.pdf , $file, 'private'); 这是创建这个:private/foo/bar/file.pdf/uidjasbknfsdoiruewjnfsdai.pdf

我希望这个私人文件上有我自己给定的文件名。该文件不应公开。

标签: laravel

解决方案


根据 Laravel 文档:

如果您不希望将文件名自动分配给存储的文件,则可以使用 storeAs 方法,该方法接收路径、文件名和(可选)磁盘作为其参数:

$path = $request->file('avatar')->storeAs(
    'avatars', $request->user()->id
);

你也可以在 Storage 门面上使用 putFileAs 方法,它将执行与上面示例相同的文件操作:

$path = Storage::putFileAs(
    'avatars', $request->file('avatar'), $request->user()->id
);

的第三个参数putFileAs是文件的可见性。如果您希望每个用户都可以访问它,请使用public而不是$request->user()->id.

你可以在这里阅读更多


推荐阅读