1.在 laravel 目錄輸入,預設目錄為 /storage/app/
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);
}
}
}