درود ، بعد از چندی انتظار بالاخره نسخه ۵٫۳ لاراول منتشر شد و کابران را با امکانات و تغییرات خودش هیجان زده کرد ، که میخوایم به یکی از این امکانات فوق العاده ساده و کاربردی یعنی آپلود فایل اشاره کنیم .

قدم اول

ابتدا لاراول نسخه ۵٫۳ رو نصب کنید و سپس به کنترلر مورد نظر میریم.

کنترلر UploadController.php :

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class UploadController extends Controller
{

    public function __construct()
    {
        $this->middleware('auth');
    }

    public function avatar()
    {
        request()->file('avatar')->store('public_html/avatars', 'ftp');
        return back();
    }
}

در خط ۱۷ درخواست ارسال شده را دریافت و با تابع store که تابعی جدید در نسخه جدید لاراول ۵٫۳ می باشد بوسیله پارامترهای موجود آپلود می نماییم. اولی پارامتر مسیر ذخیره عکس که شامل فولدری جهت ذخیره عکس میباشد تعیین میشود و پارامتر دوم نوع درایوری که جهت اتصال میخواهیم استفاده کنیم مشخص میگردد که ما در اینجا از کانکشن FTP استفاده میکنیم .

نکته : به طور پیش فرض درایور ftp در فایل config/filesystems.php تعریف نشده است ، که ابتدا باید این درایور را تعریف و از آن استفاده کنیم ، حال فایل filesystems.php را باز کرده و کد زیر را اضافه نمایید :

'disks' => [

        'local' => [
            'driver' => 'local',
            'root' => storage_path('app'),
        ],

        'public' => [
            'driver' => 'local',
            'root' => storage_path('app/public'),
            'visibility' => 'public',
        ],

        's3' => [
            'driver' => 's3',
            'key' => 'your-key',
            'secret' => 'your-secret',
            'region' => 'your-region',
            'bucket' => 'your-bucket',
        ],

        'ftp' => [
            'driver'   => 'ftp',
            'host'     => 'yourdomain.com', //  مشخصات اکانت مربوط به ftp
            'username' => 'user_ftp',
            'password' => 'password_ftp',

            // تنظیمات اختیاری ftp ...
            // 'port'     => 21,
            // 'root'     => '',
            // 'passive'  => true,
            // 'ssl'      => true,
            // 'timeout'  => 30,
        ],
    ],

قدم دوم

به فایل route خود رفته مسیر آپلود فایل را مشخص نمایید :

Route::get('/home', '[email protected]'); // صفحه آپلود فایل
Route::post('/home',['as'=>'avatar' , 'uses'=>'[email protected]']); // ذخیره فایل جهت اپلود

قدم سوم

فایل view مورد نظر را باز کرده و کدهای مربوط به فرم را درج کنید :

<form method=post action={&#8205;{ route('avatar') }} enctype=multipart/form-data>
    {&#8205;{ csrf_field() }}
    <input type=file name=avatar>
    <button type=submit>save</button>
</form>

خب ، تبریک میگم شما توانستید آپلود فایل هاتون رو با استفاده از ftp انجام بدید ، امیدوارم این آموزش هم مفید و کاربردی واقع شده باشه و لذت برده باشید .