#laravel筆記# 檔案上傳

來源:互聯網
上載者:User

標籤: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筆記# 檔案上傳

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.