Laravel - 檔案上傳



在 Laravel 中上傳檔案非常簡單。我們只需要建立一個使用者可以選擇要上傳的檔案的檢視檔案,以及一個處理上傳檔案的控制器。

在檢視檔案中,我們需要透過新增以下程式碼行來生成一個檔案輸入。

Form::file('file_name');

在 Form::open() 中,我們需要新增 **‘files’=>’true’**,如下所示。這使得表單能夠以多部分的形式上傳。

Form::open(array('url' => '/uploadfile','files'=>'true'));

示例

**步驟 1** - 建立一個名為 **resources/views/uploadfile.php** 的檢視檔案,並將以下程式碼複製到該檔案中。

resources/views/uploadfile.php

<html>
   <body>
      <?php
         echo Form::open(array('url' => '/uploadfile','files'=>'true'));
         echo 'Select the file to upload.';
         echo Form::file('image');
         echo Form::submit('Upload File');
         echo Form::close();
      ?>
   </body>
</html>

**步驟 2** - 透過執行以下命令建立名為 **UploadFileController** 的控制器。

php artisan make:controller UploadFileController --plain

**步驟 3** - 成功執行後,您將收到以下輸出:

UploadFileController

**步驟 4** - 將以下程式碼複製到

**app/Http/Controllers/UploadFileController.php** 檔案中。

app/Http/Controllers/UploadFileController.php

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;

class UploadFileController extends Controller {
   public function index() {
      return view('uploadfile');
   }
   public function showUploadFile(Request $request) {
      $file = $request->file('image');
   
      //Display File Name
      echo 'File Name: '.$file->getClientOriginalName();
      echo '<br>';
   
      //Display File Extension
      echo 'File Extension: '.$file->getClientOriginalExtension();
      echo '<br>';
   
      //Display File Real Path
      echo 'File Real Path: '.$file->getRealPath();
      echo '<br>';
   
      //Display File Size
      echo 'File Size: '.$file->getSize();
      echo '<br>';
   
      //Display File Mime Type
      echo 'File Mime Type: '.$file->getMimeType();
   
      //Move Uploaded File
      $destinationPath = 'uploads';
      $file->move($destinationPath,$file->getClientOriginalName());
   }
}

**步驟 5** - 在 **app/Http/routes.php** 中新增以下行。

app/Http/routes.php

Route::get('/uploadfile','UploadFileController@index');
Route::post('/uploadfile','UploadFileController@showUploadFile');

**步驟 6** - 訪問以下 URL 以測試檔案上傳功能。

https://:8000/uploadfile

**步驟 7** - 您將收到如下所示的提示。

Browse File
廣告

© . All rights reserved.