انتقال فایل از یک هاست یا سرور به هاست یا سرور دیگر در شرایطی که حجم فایل بسیار بالا باشد، باعث اتلاف زمان زیاد و هزینهی زیاد برای دانلود و آپلود مجدد فایل است.
برای حل این مشکل میتوان با یک اسکریپت php، کار انتقال فایل از طریق پروتکل http یا ftp را به آسانی و سرعت زیاد به انجام رساند.
سرورها و هاستهای اینترنتی به با سرعتهای بسیار بالا به شبکهی اینترنت متصل هستند و انتقال فایلی که ممکن است دانلود و آپلود آن به یک ساعت زمان نیاز داشته باشد، در عرض چندین ثانیه به انجام میرسد.
نکته امنیتی
پس از پایان انتقال فایل، در اولین فرصت، فایل php انتقال را از روی سرور حذف کنید، همچنین بهتر است انتقال فایل در یک زیرشاخه از دامنهی مقصد به انجام برسد تا در صورت مراجعهی کاربران به دامنهی جدید، به طور اتفاقی، اسکریپت انتقال یا فایل منتقل شده در معرض دید آنان قرار نگیرد.
نکتهی دیگر پیش از اجرای اسکریپت، بررسی وجود نداشتن فایلی همنام با فایل انتقالی در شاخهی فعلی است، زیرا اگر چنین فایلی از قبل موجود باشد بازنویسی خواهد شد.
روش انتقال
پیش از انتقال فایلها از سرور قدیم به جدید، آنها را فشرده کنید و سپس مسیر مستقیم و کامل فایل را در یکی از اسکریپتهای زیر قرار دهید. سپس اسکریپت را در هاست مقصد آپلود نمایید و با وارد کردن آدرس آن در مرورگر، آن را اجرا کنید.
برای مثال اگر میخواهید فایل http://example.com/learnchi.gz را به هاست جدید https://learnchi.ir منتقل کنید، ابتدا یک شاخهی جدید مانند upload در هاست جدید بسازید، آدرس فایل موجود در هاست قدیمی را در اسکریپت کپی کنید. اسکریپت را در هاست جدید آپلود کنید و در پایان با اجرای دستور https://learnchi.ir/upload/transload.php فایل را با سرعت زیاد از هاست قدیمی به هاست جدید منتقل کنید.
انتقال فایل از سرور به سرور دیگر از طریق پروتکل http
اگر فایل موجود در هاست قدیمی با استفاده از پروتکل http یا ftp بدون رمز قابل دسترسی است
انتقال فایل از هاست به هاست دیگر از طریق پروتکل ftp
اگر قصد انتقال فایل از طریق پروتکل ftp به همراه رمز را دارید، قطعه کد زیر را مطابق نیاز تغییر دهید و از آن برای جابجایی فایل کمک بگیرید