使用Laravel框架如何實(shí)現(xiàn)一個(gè)文件上傳功能-創(chuàng)新互聯(lián)

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

創(chuàng)新互聯(lián)公司是一家專業(yè)從事網(wǎng)站制作、網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司。作為專業(yè)網(wǎng)站設(shè)計(jì)公司,創(chuàng)新互聯(lián)公司依托的技術(shù)實(shí)力、以及多年的網(wǎng)站運(yùn)營(yíng)經(jīng)驗(yàn),為您提供專業(yè)的成都網(wǎng)站建設(shè)、全網(wǎng)整合營(yíng)銷推廣及網(wǎng)站設(shè)計(jì)開發(fā)服務(wù)!

實(shí)現(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è)計(jì)簡(jiǎn)單的視圖,核心代碼如下

<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;
//上傳文件 功能實(shí)現(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();
        //臨時(shí)絕對(duì)路徑
        $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 的對(duì)應(yīng)日期目錄下

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

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

網(wǎng)站欄目:使用Laravel框架如何實(shí)現(xiàn)一個(gè)文件上傳功能-創(chuàng)新互聯(lián)
瀏覽路徑:http://muchs.cn/article46/djgehg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)企業(yè)建站、域名注冊(cè)App設(shè)計(jì)、小程序開發(fā)營(yíng)銷型網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司