php artisan storage:link
2.建立檔案,在程式碼中加入
Storage::disk('public')->put('test.txt', 'contents...');
3.取得剛剛新建立檔案的網址
echo asset('storage/test.txt');
4.取得檔案的內容
echo Storage::get('test.txt');
5.下載檔案
Storage::download('test.txt');
6.檔案上傳
$path = request()->image->store('public'); // 將欄位名image的圖片存入/storage/app/public
request()->image->storeAs($dir, $file_name); // 將檔案以 $file_name 存入 $dir,$dir='public/';
7.取得副檔名
$ext = request()->image->extension();
8.是否有檔案
request()->hasFile('image');
9.照片上傳+縮圖範例
/** * 圖片上傳 + 縮圖 * @param [request]$img $request->file * @param [string] $feild 欄位名稱 * @param array $thumb_arr 縮圖 [[100,100],[250,250]] 會有兩個thumb資料目錄,沒輸入就不縮圖 * @return [array] result:是否成功 file_name、file_path */ public function upload_image($img, $feild, $thumb_arr=[]) { $check = 1; $ext = $img->extension(); if (!$this->fileExtCheck($ext)){ $check = 0; } $admin_path = $this->admin_path.'/'.$feild; Storage::makeDirectory('public/'.$admin_path); $file_name = $this->getFileName($img->getClientOriginalName()); $directory = $this->la_storage_path.'/'.$admin_path; $save_file = $directory.'/'.$file_name; if (!Image::make($img)->save($save_file)){ $check = 0; } if (isset($thumb_arr)){ foreach($thumb_arr as $thumb){ $thumb_name = 'thumb_'.$thumb[0].'_'.$thumb[1]; Storage::makeDirectory('public/'.$admin_path.'/'.$thumb_name); $themb_img = $directory.'/'.$thumb_name.'/'.$file_name; $t = Image::make($img)->resize($thumb[0],$thumb[1],function($constraint){ $constraint->aspectRatio(); })->save($themb_img); if (!$t){ $check = 0; } } } if ($check) return ['result'=>'ok', 'file_name'=>$file_name, 'file_path'=>'storage/'.$admin_path.'/'.$file_name]; else return ['result'=>'err']; }10.刪除照片及縮圖
public function unlink_img($img, $thumb_arr=[]) { if (is_file($this->root.'/'.$img)) unlink($this->root.'/'.$img); if (isset($thumb_arr)){ foreach($thumb_arr as $thumb){ $thumb_name = 'thumb_'.$thumb[0].'_'.$thumb[1]; $thumb_img = $this->root.'/'.dirname($img).'/'.$thumb_name.'/'.basename($img); if (is_file($thumb_img)) unlink($thumb_img); } } }