根據個人場景更改配置config\filesystems.php
//我這個是做文章圖片上傳,就命名 article ,學習的話可以使用默認的配置
'disks' => [
'local' => [
'driver' => 'local',
'root' => storage_path('app'),
],
'public' => [
'driver' => 'local',
'root' => storage_path('app/public'),
'url' => env('APP_URL').'/storage',
'visibility' => 'public',
],
'article' => [
'driver' => 'local',
'root' => public_path('/article'), // public_path 就是public的路徑
'url' => env('APP_URL').'/storage',
'visibility' => 'public',
],
's3' => [
'driver' => 's3',
'key' => env('AWS_ACCESS_KEY_ID'),
'secret' => env('AWS_SECRET_ACCESS_KEY'),
'region' => env('AWS_DEFAULT_REGION'),
'bucket' => env('AWS_BUCKET'),
'url' => env('AWS_URL'),
],
],
處理流程
//在控制器寫一個上傳方法
public function upload_img(Request $request)
{
if ($request->isMethod('POST')) { //判斷文件是否是 POST的方式上傳
$tmp = $request->file('file');
$path = '/article'; //public下的article
if ($tmp->isValid()) { //判斷文件上傳是否有效
$FileType = $tmp->getClientOriginalExtension(); //獲取文件後綴
$FilePath = $tmp->getRealPath(); //獲取文件臨時存放位置
$FileName = date('Y-m-d') . uniqid() . '.' . $FileType; //定義文件名
Storage::disk('article')->put($FileName, file_get_contents($FilePath)); //存儲文件
return $data = [
'status' => 0,
'path' => $path . '/' . $FileName //文件路徑
];
}
}
}
執行完 後會在 public\article看見上傳的圖片