laravel - 设置文件名存储::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 文档:
如果您不希望将文件名自动分配给存储的文件,则可以使用 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
.
你可以在这里阅读更多。
推荐阅读
- javascript - 如何播放选定的歌曲?
- javascript - 我们可以控制将附加到 web api 的 ID 并在调用之前对其进行哈希处理吗?
- python - wbscraping booking.com时出现问题
- r - 将数据框(tibble)的变量名称保存为向量
- angular - 角度变化检测不适用于主题
- react-native - 仅构建 Expo Bare Workflow React Native App ios 版本时出错
- reactjs - 我的提交处理程序在反应中无法正常工作
- css - 自定义按钮中的 bootstrap 5 文本颜色对比度
- python - python回归:用新数据预测模型
- ansible - 如何在 Ansible 输出日志中显示主机名?