انتقال فایلهای حجیم بین دو هاست با php و ftp
جابجا کردن فایلهای حجیم از یک هاست به هاست دیگر میتواند زمانبر و پردردسر باشد، در مطلب قبلی یک اسکریپت php نوشتیم که یک فایل را از سرور مبدا روی هاست جدید دانلود میکرد.
- توضیحات بیشتر و دانلود اسکریپت انتقال فایل
در این نوشته میخواهیم یک اسکریپت جدید معرفی کنیم که به جای دانلود، فایل مورد نظر شما را با کمک FTP به هاست جدید آپلود میکند.
استفاده از روش قبلی که فایل را دانلود میکند، ممکن است گاهی با محدودیت سرعت روبرو شود ولی مزیت استفاده از آپلود ftp به جای دانلود، عدم وجود محدودیت سرعت آپلود در بیشتر هاستها میباشد.
جهت استفاده از این اسکریپت، متغیرهای لازم شامل نام فایل، مسیر فایل در سرور مقصد، نام سرور ftp، نام کاربری و گذرواژه را در اسکریپت زیر اصلاح کنید و سپس آن را با نامی دلخواه در هاست آپلود نمایید.
پس از اجرای این اسکریپت، فایل از طریق پروتکل ftp به هاست مقصد آپلود خواهد شد.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
<?php ini_set( 'max_execution_time', 300 ); ?> <!doctype html> <html lang="fa"> <head> <meta charset="UTF-8"> <title>آپلود کننده روکا</title> </head> <body> از سایت ما دیدن کنید: <a href="https://rokaweb.ir/">RokaWeb</a> <br> <?php $file = 'upload.tar.bz2'; $remote_file = '/public_html/upload.tar.bz2'; $ftp = ftp_connect( 'ftp.example.com' ); $login_result = ftp_login( $ftp, 'username', 'password' ); if( ftp_put( $ftp, $remote_file, $file, FTP_BINARY ) ) { echo "فایل $file با موفقیت آپلود شد"; } else { echo "رخداد خطا در آپلود فایل $file"; } ftp_close( $ftp ); ?> </body> </html> |
نکات امنیتی
اسکریپتهایی مثل این که اطلاعات دسترسی به هاستها در آن ذخیره شده میتوانند مشکلات امنیتی برای شما ایجاد کنند. بنابراین پس از تکمیلی فرآیند انتقال فایل، هر چه زودتر این اسکریپت را از روی هاست حذف کنید.
همچنین بهتر است این فایل را با یک نام غیرقابل حدس و در یک شاخهی موقتی روی هاست ایجاد کنید تا اصول امنیتی را بهتر رعایت کرده باشید.
سلام. میشه دقیق توضیح بدین چجوری از این کد استفاده کنیم؟
مثلا اف تی پی کیو بنویسیم. سایت مبدا یا مقصد؟
ریموتش چجوری باشه
ممنون
با سلام
لطفا توضیحات را یک بار دیگر با دقت مطالعه بفرمایید
این اسکریپت را باید در یک فایل با پسوند php روی سرور مبدا کپی کنید و اطلاعات ftp سرور مقصد را در آن ویرایش کنید. سپس فایل را اجرا نمایید
با سپاس
درود میگه فایلی در این خط هست رو پیدا نمیکنه :
$remote_file = '/public_html/upload.tar.bz2';
ممنون میشم پاسخ رو به ایمیل هم ارسال کنید.
با سلام
دقت کنید که اسم فایل مبدا و مسیر فایل مقصد را به درستی وارد نمایید
از یک نرمافزار ftp مثل Filezilla کمک بگیرید تا بررسی کنید که مسیر وارد شده در سرور مقصد موجود است
نمیشه قبل اینکه به هاست وارد بشه اگه فرمتش rar باشه تبدیل به زیپ بشه؟
با سلام
تبدیل شدن فایل rar به zip کار آسانی نیست و ابتدا باید فایل rar استخراج شود و سپس مجددا با فرمت zip فشردهسازی گردد
انجام این تبدیل به زیرساختهای نرمافزاری روی هاست وابسته است و همچنین به یک اسکریپت مجزا نیاز دارد
سلام
درصد پیشرفت رو هم میشه نشون داد؟
با سلام
بله امکان اصلاح اسکریپت برای نمایش درصد انتقال هم وجود دارد ولی با توجه به نوع استفاده، به سادگی میتوانید با مراجعه به File Manager یا FTP مقدار حجم فایل انتقال یافته را مشاهده کنید
با سلام
ممنون خیلی عالی بود .
آیا امکان داره که با این سرعت از دسکتاپ هم آپلود کرد.
با سپاس فراوان
با سلام
سرعت انتقال بالا به دلیل سرعت اینترنت بالا روی هاست است و روی کامپیوتر خانگی معمولا چنین اینترنتی موجود نیست
آقا دمت گرم انصافا
کلی گشتم از صبح تا بتونم یه راهی پیدا کنم فایل بکاپ و بیارم رو هاست دانلودم و چون شرکت های هاستینگ هم دسترسی به شل نمیدن این اسکریپت شما نجاتم داد
همیشه شاد و سلامت باشید.
سلام من یه کدی میخوام که روی هاست دانلود بزارم فایل رو از یه سایتی مثلا اپارات برداره و باftp به هاست منتقل کنه یا هم توی هاست اصلیم اپلود کنه و یا یه کد باشه با لینک مستقیم فایل رو بگیره تو هایت اصلی اپلود کنه بعد همون فایل رو از هاست اصلی بعد از اپلود کامل وردازه باftp رو هاست دانلود اپلود کنه بعد فایل رو از هاست اصلی پاک کنه
میشه؟
با سلام
بسته به اینکه حجم کارهای شما چقدر باشد ممکن است با انجام تغییراتی جزئی در همین اسکریپت قابل انجام باشد یا اینکه اگر حجم و تعداد آن زیاد است لازم است تا یک اسکریپت مخصوص برای شما نوشته شود. اگر در زمینهی برنامهنویسی php تجربه ندارید، باید از یک برنامهنویس بخواهید تا موارد مورد نیاز شما را انجام بدهد.