Laravel – Upload file

Uploading Files trong Laravel rất đơn giản. Bạn chỉ cần tạo một View chứa form upload file và một controller để xử lý file upload.

Trong file view, bạn cần tạo form với file input bằng dòng code bên dưới.

Form::file('file_name');

Trong Form::open(), bạn cần thêm ‘files’=>’true’ như bên dưới.

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

Ví dụ

Step 1 : Tạo View uploadfile.blade.php với code bên dưới.

resources/views/uploadfile.blade.php

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

Step 2 : Tạo controller UploadFileController bằng lệnh command bên dưới.

php artisan make:controller UploadFileController

Step 3 : Thêm code như bên dưới vào controller UploadFileController vừa tạo ở trên.

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

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());
    }
}

Step 4 : Thêm code bên dưới vào routes/web.php.

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

Step 5 : Vào đường dẫn http://localhost:8000/uploadfile để upload file.

Kết quả sau upload:

File được lưu trong thư mục public/uploads