標籤:head 防止 參數傳遞 origin 檔案大小 ror style 項目 臨時檔案
在Laravel表單請求中,擷取上傳的檔案對象:$file=$request->file(‘name‘);
1.在檔案對象中,我們可以獲得以下主要資訊:
//檔案的副檔名$file->getClientOriginalExtension();//檔案的原名$file->getClientOriginalName();//檔案大小$file->getSize();//檔案臨時的絕對路徑$realpath = $file->getRealPath();//把臨時檔案移動到指定的位置,並重新命名$file->move($path,$name);
當$file->move返迴文件對象結果時,說明檔案上傳成功
2.在laravel中還是通過$file->store($path)來上傳檔案
$file->store($path)只需要指定$path目錄名即可,且該目錄名在storage/app目錄下,系統會MD5檔案內容自動組建檔案名,此傳回值為檔案路徑+檔案名稱
如果需要自訂檔案名稱或者檔案過大時!可使用$file->storeAs($path,$name)自訂檔案名稱,同樣該目錄在storage/app目錄下,傳回值為檔案路徑+檔案名稱
以上2中方法都可以進行檔案儲存體,但是第一種可以把檔案儲存體項目的任意位置中,而第二種只能儲存在strorage/app目錄下的任意位置。當上傳的檔案需要考慮到安全,防止盜鏈等問題時應把檔案上傳到非public目錄下。
3.檔案的響應(瀏覽器中顯示檔案)
return response()->file($pathToFile);
$pathToFile為檔案所在路徑和檔案名稱;
4.檔案強制下載
return response()->download($pathToFile);
return response()->download($pathToFile,$name,$headers);
產生強制使用者瀏覽器下載給定路徑檔案的響應,download 方法接受檔案名稱作為第二個參數,該參數決定使用者下載檔案的顯示名稱,你還可以將 HTTP 頭資訊作為第三個參數傳遞到該方法
#laravel筆記# 檔案上傳