阅读(3592) (7)

Laravel 8 指定一个文件名

2021-07-02 16:44:04 更新

如果您不想让应用在存储文件过程中自动生成文件名,您可以使用 storeAs 来实现之。该方法接受路径,文件名以及磁盘(可选)作为其参数:

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

您亦可使用 Storage 门面的 putFileAs 方法来实现与上述例子中相同的效果:

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

注意:文件路径中的非打印字符和无效的 unicode 字符将会被自动移除。因此,您可能希望在将路径传递给 Laravel 的文件存储方法前对其进行清理,您可以使用 League\Flysystem\Util::normalizePath 方法对其进行规范。