دانلود فایل از FTP در لاراول

در این مقاله قصد داریم طریقه دانلود با FTP در فریم ورک لاراول رو به شما عزیزان آموزش بدیم ، پس با ما همراه باشید .

اجازه بدید یک کنترل با نام DownloadController.php ایجاد میکنیم :

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Storage;
use Response;

class DownloadController extends Controller
{
     function downloadFile(Request $request) {

        $file = $request->get('file');
        if(!$file) {
            return Response::json('please provide valid path', 400);
        }
        $fileName = basename($file);

         $ftp = Storage::createFtpDriver([
                        'host'     => 'your_host',
                        'username' => 'your_ftp_user',
                        'password' => 'your_ftp_user_password',
                        'port'     => '21', // your ftp port
                        'timeout'  => '30', // timeout setting
          ]);

           $filecontent = $ftp->get($file); // read file content
           // download file.
           return Response::make($filecontent, '200', array(
                'Content-Type' => 'application/octet-stream',
                'Content-Disposition' => 'attachment; filename="'.$fileName.'"'
            ));
    }
}

ابتدا تابعی با نام downloadFile ایجاد میکنیم :

با استفاده از متغیر $file فایل ورودی خود را دریافت میکنیم و در این متغییر قرار میدهیم .

سپس با استفاده از یک شرط معتبر بودن مسیر فایل را چک مینماییم .

در ادامه با استفاده از تابع basename نام فایل از یک مسیر را مشخص میکنیم .

حال باید با استفاده از کلاس Storage درایور مربوط به اتصال FTP خود را تعیین کنیم و مشخصات لازم را طبق FTP در هاست مقدار دهی کنیم .

در ادامه با استفاده از تابع $ftp->get($file) محتوا فایل مورد نظر را میخوانیم .

در نهایت با ساخت یک درخواست جهت دانلود فایل مورد فایل را دریافت میکنیم .

بدین شکل توانستیم فایل های مورد نظر از سرور را با استفاده از FTP در فریم ورک لاراول دانلود نماییم.