首頁  >  文章  >  php框架  >  laravel系統自備的文件上傳功能

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

藏色散人
藏色散人轉載
2020-10-10 15:06:022557瀏覽

下面由Laravel教學欄位介紹laravel系統自帶的檔案上傳功能 ,希望對需要的朋友有幫助!

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

    上傳檔案這個功能,說難吧,其實都是封裝好的,真的不難。說不很難吧,各種配置什麼的有時候真的也會讓人頭痛。今天呢,就說一下關於laravel的上傳功能的介紹。

    直接呼叫指令從composer下載了一份laravel的框架,命名為blog(這個隨便)

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

    

簡單的解釋一下

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

   配置完之後呢就到了程式碼區塊了。程式碼塊就相當簡單了。

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

    前端程式碼

上传文件

{{ csrf_field() }}

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

後端程式碼

3

public function upload(Request $request){
    	if ($request->isMethod('POST')) { //判断是否是POST上传,应该不会有人用get吧,恩,不会的

    		//在源生的php代码中是使用$_FILE来查看上传文件的属性
    		//但是在laravel里面有更好的封装好的方法,就是下面这个
    		//显示的属性更多
    		$fileCharater = $request->file('source');

    		if ($fileCharater->isValid()) { //括号里面的是必须加的哦
    			//如果括号里面的不加上的话,下面的方法也无法调用的

    			//获取文件的扩展名 
    			$ext = $fileCharater->getClientOriginalExtension();

    			//获取文件的绝对路径
    			$path = $fileCharater->getRealPath();

    			//定义文件名
    			$filename = date('Y-m-d-h-i-s').'.'.$ext;

    			//存储文件。disk里面的public。总的来说,就是调用disk模块里的public配置
    			Storage::disk('public')->put($filename, file_get_contents($path));
    		}
    	}
    	return view('upload');
    }

    小編是一邊弄一邊打,怕自己寫錯了給你們笑話。最後成功的上傳了檔案進去。

       

以上是laravel系統自備的文件上傳功能的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:csdn.net。如有侵權,請聯絡admin@php.cn刪除