我講一些圖片和用戶上傳檔案保存在了storage目錄中(處於安全考慮,不希望用戶隨意下載),
那麼在需要顯示該檔案時,該如何取得路徑呢?
兩個方案,第一個,php讀取檔案並輸出,在Laravel程式碼大致如下
// 控制器 // https://github.com/shellus/shcms/blob/v2.0.0/app/Http/Controllers/FileController.php class FileController extends Controller { public function show($id){ return File::findOrFail($id) -> downResponse(); } } // Model https://github.com/shellus/shcms/blob/v2.0.0/app/File.php public function downResponse(){ return new BinaryFileResponse($this -> downToLocal()); } public function downToLocal(){ $temp_path = tempnam(sys_get_temp_dir(), $this->id); $is_success = file_put_contents($temp_path, \Storage::disk('public')->get($this -> full_path)); return $temp_path; }
第二個,使用Linux ln指令建立storage資料夾軟連結public資料夾,但這樣做與直接將檔案存放在public沒有差別。
兩個方案,第一個,php讀取檔案並輸出,在Laravel程式碼大致如下
第二個,使用Linux ln指令建立storage資料夾軟連結public資料夾,但這樣做與直接將檔案存放在public沒有差別。