📅  最后修改于: 2023-12-03 14:47:43.190000             🧑  作者: Mango
storePublicly
是Laravel中的一个方法,可以将文件存储到公共磁盘上。
storePublicly
方法接受两个参数:目标磁盘和可选的路径。如果不提供路径,则将使用文件名。这个方法会将文件存储到指定磁盘的公共文件夹中,并返回文件的公共URL。
$path = $request->file('avatar')->storePublicly('avatars', 'public');
在上面的示例中,我们将从请求中获取一个名为avatar
的文件,并将其存储到名为public
的公共磁盘的avatars
目录中。
使用storePublicly
方法时,需要在config/filesystems.php
文件中定义磁盘。
'disks' => [
'public' => [
'driver' => 'local',
'root' => public_path(),
'url' => env('APP_URL').'/public',
'visibility' => 'public',
],
// ...
],
storePublicly
方法返回存储在公共磁盘上的文件的公共URL。
$path = $request->file('avatar')->storePublicly('avatars', 'public');
// 获取文件的公共URL
$url = asset('storage/' . $path);
以下代码片段演示了如何使用storePublicly
方法将文件存储到公共磁盘。
use Illuminate\Http\Request;
Route::post('/upload', function(Request $request) {
$path = $request->file('avatar')->storePublicly('avatars', 'public');
// 获取文件的公共URL
$url = asset('storage/' . $path);
return response()->markdown('upload', compact('url'));
});
以上代码将文件存储到名为public
的公共磁盘的avatars目录,并将该文件的公共URL返回到upload.blade.md
模板中。
# 文件上传成功
文件已成功上传,公共URL为:{{ $url }}