溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

使用Laravel框架如何實現(xiàn)一個文件上傳功能

發(fā)布時間:2021-02-08 14:57:28 來源:億速云 閱讀:182 作者:Leah 欄目:開發(fā)技術(shù)

使用Laravel框架如何實現(xiàn)一個文件上傳功能?相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

實現(xiàn)步驟:

(1). 配置文件修改

打開 config/filesystems.php 文件

在 ‘disks' 數(shù)組中添加如下代碼

//自定義
'uploads' => [
  'driver' => 'local',
  //'root' => storage_path('app/uploads'),
  'root' => public_path('uploads/'.date('Ymd')),
],

(2).前端視圖 upload.blade.php

根據(jù)需求,設(shè)計簡單的視圖,核心代碼如下

<div class="panel panel-default">
    <div class="panel-heading">文件上傳</div>
    <div class="panel-body">
      <form class="form-horizontal" role="form" method="POST" action="" enctype="multipart/form-data">
        {{ csrf_field() }}
        <div class="form-group">
          <label for="file" class="col-md-4 control-label">Hello world</label>
          <div class="col-md-6">
            <input id="file" type="file" class="form-control" name="source">
          </div>
        </div>
        <div class="form-group">
          <div class="col-md-6 col-md-offset-4">
            <button type="submit" class="btn btn-primary">
              <i class="fa fa-btn fa-sign-in"></i> 上傳
            </button>
          </div>
        </div>
      </form>
    </div>
</div>

(3). 控制器核心代碼

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Storage;
//上傳文件 功能實現(xiàn)方法
public function upload(Request $request){
    if ($request->isMethod('POST')){
      $file = $request->file('source');
      //判斷文件是否上傳成功
      if ($file->isValid()){
        //原文件名
        $originalName = $file->getClientOriginalName();
        //擴(kuò)展名
        $ext = $file->getClientOriginalExtension();
        //MimeType
        $type = $file->getClientMimeType();
        //臨時絕對路徑
        $realPath = $file->getRealPath();
        $filename = uniqid().'.'.$ext;
        $bool = Storage::disk('uploads')->put($filename,file_get_contents($realPath));
        //判斷是否上傳成功
        if($bool){
          echo 'success';
        }else{
          echo 'fail';
        }
      }
    }
    return view('upload');
}

(4). 執(zhí)行上述方法結(jié)果

通過調(diào)用上述方法,正確執(zhí)行后,上傳的文件將出現(xiàn)在 public/uploads 的對應(yīng)日期目錄下

使用Laravel框架如何實現(xiàn)一個文件上傳功能

看完上述內(nèi)容,你們掌握使用Laravel框架如何實現(xiàn)一個文件上傳功能的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI