laravel系統自帶的文件上傳功能

下面由laravel教程欄目給大家介紹laravel系統自帶的文件上傳功能 ,希望對需要的朋友有所幫助!

laravel系統自帶的文件上傳功能

? ? 對于上傳文件這個功能,說難吧,其實都是封裝好的,真的不難。說不難吧,各種配置什么的有時候真的也會讓人頭疼。今天呢,就說一下關于laravel的上傳功能的介紹。

? ? 直接調用命令從composer上下載了一份laravel的框架,命名為blog(這個隨便)

? ? 進入文件blog->config->filesystems.php,其中有一個disk的配置。

????laravel系統自帶的文件上傳功能

簡單的解釋一下

  • disk配置項的總調用,在后面會用到的。可以把它當做一個public的調用方法這樣就很好理解了
  • local代表的是其中的一個小的配置項,因為或許一個項目中,要有很多不同的存儲方式或者存儲位置,local,public,s3都是表示不同的存儲方式。
  • driver表示的是存儲位置,像local表示的就是存儲在本地項目中。s3是存儲在亞馬遜的磁盤位置,或許還有很多,到時候我們就可以按照這三個的demo模式繼續的創建
  • 因為一般都是存儲在項目本身,所以我們下面去掉s3的解釋。
  • root表示的是文件存儲的位置。‘app/public’表示的就是文件存儲在blog->storage->app->public下面。‘’app/public‘’是可以隨意的改變的。
  • 正常的就像local的兩個配置就可以了。

? ?配置完之后呢就到了代碼塊了。代碼塊就相當簡單了。

  1. 創建路由,路由自己定義就好了(這個就不用解釋了吧)
  2. 編寫和路由對應的方法,在方法里面開始編寫代碼。

? ? 前端代碼

<p> ????</p><p>上傳文件</p> ????
????????{{?csrf_field()?}}??????????? ???????? ???????????? ???????? ????

紅色部分代碼是必須加上的,如果不加上的話,下面的php語句中的代碼驗證就無法實現

后端代碼

3

public?function?upload(Request?$request){ ????	if?($request-&gt;isMethod('POST'))?{?//判斷是否是POST上傳,應該不會有人用get吧,恩,不會的  ????		//在源生的php代碼中是使用$_FILE來查看上傳文件的屬性 ????		//但是在laravel里面有更好的封裝好的方法,就是下面這個 ????		//顯示的屬性更多 ????		$fileCharater?=?$request-&gt;file('source');  ????		if?($fileCharater-&gt;isValid())?{?//括號里面的是必須加的哦 ????			//如果括號里面的不加上的話,下面的方法也無法調用的  ????			//獲取文件的擴展名? ????			$ext?=?$fileCharater-&gt;getClientOriginalExtension();  ????			//獲取文件的絕對路徑 ????			$path?=?$fileCharater-&gt;getRealPath();  ????			//定義文件名 ????			$filename?=?date('Y-m-d-h-i-s').'.'.$ext;  ????			//存儲文件。disk里面的public。總的來說,就是調用disk模塊里的public配置 ????			Storage::disk('public')-&gt;put($filename,?file_get_contents($path)); ????		} ????	} ????	return?view('upload'); ????}

? ? 小編是一邊弄一邊打,生怕自己寫錯了給你們笑話。最后成功的上傳了文件進去。

???????laravel系統自帶的文件上傳功能

以上就是

? 版權聲明
THE END
喜歡就支持一下吧
點贊5 分享