در این مقاله قصد داریم طریقه دانلود با 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
در فریم ورک لاراول دانلود نماییم.