اتصال به سرور FTP در PHP

  • آپدیت شده در تاریخ

اتصال به سرور FTP در PHP

آپلود فایل ها به سرور توسط FTP یکی از کارهای اساسی هر توسعه دهنده وب است . ابزارهای FTP Client زیادی برای مدیریت فایل ها برای FTP Server  وجود دارد . اما اگر قصد دارید از طریق اسکریپت خود به سرور FTP متصل شوید ، پس مقاله اتصال به سرور FTP در PHP دنبال کنید

 

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

 

اتصال و لاگین در FTP Server

اول از همه , با تابع ftp_connect() به سرورFTP متصل می شویم. بعد اولین اتصال با تابع ftp_login() با نام کاربری و پسورد FTP لاگین می کنیم

 

آپلود فایل در FTP Server

بعد از لاگین شدن به ftp سرور ،   از تابع ftp_put() برای آپلود فایل ها به سرور استفاده می کنیم

 

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

بعد از لاگین شدن به ftp  سرور ، از تابع ftp_get() برای دانلود فایل ها از سرور بهره می بریم.

 

حذف فایل از سرور FTP

در این قسمت بعد از لاگین شدن به سرور FTP از تابع ftp_delete()  برای پاک کردن فایل ها از سرور استفاده خواهیم کرد

 

در پایان همیشه از ftp_close() برا بستن کانکشن مربوطه از memory  استفاده میکنیم تا فضای خالی برای پروسه دیگر درخواست ها ایجاد شود

 

FTP چیست؟

FTP از حروف اول کلمات File Transfer Protocol تشکیل شده است و به عبارتی سرنام آن سه کلمه است، که به طور اختصار از اصطلاح FTP استفاده می‌شود. همانطور که از نام آن می‌توان فهمید، از آن برای تبادل فایل بین حساب‌های مختلف یک رایانه، بین یک حساب و یک رایانه شخصی و یا برای دسترسی آنلاین به بایگانی نرم افزارها در یک شبکه استفاده می‌شود.

موفق باشید .

حسن شفیعی توسعه دهنده وب و موبایل مدیر سایت علاقه خاصی به برنامه نویسی وب و موبایل دارم و هر روز تلاش می کنم به این حوزه مسلط تر شوم و اطلاعاتم را به شکل کاربردی برای علاقه مندان در وب به اشتراک بگذارم. اگر نیاز به برنامه نویس برای انجام پروژه و نوشتن اسکریپت های سمت وب, اپلیکیشن های اندروید و ios, پیدا کردن راه حل توسعه و غیره داشتید حتما از طریق تماس با ما/ واتساپ/ تلگرام بهم پیام بدید. برایتهیه هاست مطمین و پرسرعت کلیک کنید
مطالب زیر را حتما بخوانید
دیدگاه کاربران (۱۵)

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

  1. فرزاد ۹ فروردین ۱۴۰۳

    سلام وتتون بخیر
    ممنون از اطلاعات مفیدتون
    من میخوام از اسکریپت php خودم برای آپلود فایل به هاست دانلود استفاده میکنم.
    مشکلم اینه که اگر کانکشن رو روی حالت پسیو قرار بدم، فایل ، آپلود نمیشه و خطای زیر رو میده:
    ftp_rawlist(): php_connect_nonb() failed: Operation now in progress (115)
    و اگر کانکشن رو روی حالت اکتیو بگذارم، فایل، آپلود میشه ولی خطای زیر رو میده :
    ftp_fput(): Could not open data connection to port xxxxx: Connection timed out
    ممنون میشم راهنمایی م کنین.

    پاسخ
    1. حسن شفیعی ۱۰ فروردین ۱۴۰۳

      سلام ممنون
      باید داخل هاستی که اسکریپت php رو اجرا میکنید timeout اسکریپت رو افزایش بدید. که اگه این دسترسی رو ندارید به هاستینگ اطلاع بدید

      پاسخ
  2. ابوطاها سربازی ۸ بهمن ۱۴۰۱

    سلام. من برای آپلود فایل از ftp_put استفاده کردم.. مسیر فایل محلی مدنظر برای آپلودم از چه طریقی به دست بیارم! ضمن اینکه عرض کنم من فایل رو با تگ input file وارد php کردم.

    پاسخ
    1. حسن شفیعی ۹ بهمن ۱۴۰۱

      سلام
      با تابع ftp_pwd() میتونید دایرکتری ای که اکانت ftp شما بهش دسترسی داره رو بگیرید و حالا کنارش دایرکتری زیرین رو هم مشخص کنید و اگر دسترسی نداشته باشید دیگه دایرکتی قبلی نمیتونید برید

      پاسخ
  3. ابولفضل ۲۶ اردیبهشت ۱۴۰۰

    سلام خسته نباشید من یه اسکریپت دارم میتونم با این روش وصلش کنم به ftp که اونجا به طور خودکار آپلود کنه

    پاسخ
    1. حسن شفیعی ۲۶ اردیبهشت ۱۴۰۰

      سلام ممنون.
      بله میتونید

      پاسخ
  4. محمد ۱۷ شهریور ۱۳۹۹

    با سلام و احترام خدمت آقای شفیعی عزیز، از مطلب مفیدتون بسیار سپاسگزارم.
    بنده نتوانستم اطلاعات ورود به ftp رو بدست بیارم. از پشتیبانی هاستم سوال کردم اما نمیدونم چرا خطا میده.
    اگر براتون ممکنه بگید خودمون چطوری از طریق سی پنل هاست دانلود این اطلاعات رو پیدا کنیم و اصلا فرم اینا چجوریه؟ ( یعنی مثلا هاست ftp دامنخ خودمون هست یا دامنه دانلود یا سرور شرکت هاست یا آی پی هاستمون؟ و یوزر پسورد همون یوزر پس ورود به سی پنل هست یا نه؟!)
    با تشکر فراوان

    پاسخ
    1. حسن شفیعی ۱۸ شهریور ۱۳۹۹

      سلام. خوشحالیم که مفید واقع شده.
      لطفا این آموزش را ببینید :
      https://mizbanfa.net/blog/hosting/cpanel/create-ftp-accounts-in-cpanel
      نحوه ساخت اکانت نمایش داده شده.
      میتونید از آیپی هاست یا نام دامنه برای اتصال از طریق نرم افزار filezilla استفاده کنید:
      https://mizbanfa.net/blog/hosting/cpanel/how-to-connect-filezilla-to-cpanel-ftp-account

      موفق باشید.

      پاسخ
      1. محمد ۱۸ شهریور ۱۳۹۹

        بسیار سپاسگزارم

        پاسخ
      2. محمد ۲۱ شهریور ۱۳۹۹

        با سلام مجدد خدمت آقای شفیعی،
        من با اطلاعات هاست دانلودم تونستم از طریق cuteftp متصل بشم اما از طریق php به هاست با همان اطلاعات متصل نمیشود یعنی خطای Couldnt connect to $ftpHost را میدهد.
        فکر میکنید مشکل از چیه؟
        با تشکر فراوان

        پاسخ
      3. حسن شفیعی ۲۱ شهریور ۱۳۹۹

        سلام.
        داخل else این خط کد رو قرار بدید تا ارور اصلی نمایش داده بشه
        print_r( error_get_last() );

        پاسخ
      4. محمد ۲۱ شهریور ۱۳۹۹

        آقای شفیعی از راهنماییتون بسیار ممنونم.
        من کد رو به صورت زیر نوشتم
        اما هیچی رو برنمیگردونه.
        <?php
        $ftpHost = ”;
        $ftpUsername = ”;
        $ftpPassword = ”;
        if(ftp_connect($ftpHost)){
        $connId = ftp_connect($ftpHost);
        echo 'connected';
        $ftpLogin = ftp_login($connId, $ftpUsername, $ftpPassword);
        ftp_close($connId);
        }
        else{
        print_r(error_get_last());
        }
        از پشتیبانی هاستم اطلاعات رو خواستم همینارو بهم دادن گفتن که با cuteFtp وصل میشه چون سیستم خودم اینترنت نداره نمیدونم درسته یا نه.
        کل سایتم روبراه شده فقط مونده همین ftp که اصلا ازش سر درنمیارم تنها امیدم شمایین لطفا کمکم کنید البته ببخشید که تا اینجای کار هم خیلی وقتتون رو گرفتم.
        هر چقدر هزینه هم داشته باشه اشکالی نداره لطفا کمکم کنید مشکلم حل بشه.
        خیلی ممنونم
        )لطفا کدهارو تو سایت نمایش ندید)

        پاسخ
      5. حسن شفیعی ۲۲ شهریور ۱۳۹۹

        سلام.
        بنده الان تست کردم و روی دو هاست مختلف و لوکال اوکی بود و متصل می شد و پیام connected چاپ می شد.
        مطمینا مشکل از محیط اجرا یا همان هاست شما هست. همچنین ورژن php ی که تست شد ۷٫۳ و ۵٫۶ بود

        پاسخ
      6. محمد ۲۳ شهریور ۱۳۹۹

        از وقتی که گذاشتین بسیار ممنونم.
        فکر میکنید مشکل هاستم چی باشه؟
        آیا تنظیماتش رو باید تغییر بدم یا افزونه ای رو فعال کنم؟ ( کدوم افزونه ها باید برای کار با ftp فعال باشند؟)
        با تشکر فراوان

        پاسخ
      7. حسن شفیعی ۲۳ شهریور ۱۳۹۹

        این مورد رو نمیشه دقیق گفت مشکلش چی هست و باید با هاستینگ مشورت کنید

        پاسخ
دوره های آموزشی