شما اینجا هستید
PHP » اسکریپت php انتقال فایل بین دو هاست

انتقال فایل بین دو هاست در شرایطی که حجم فایل بسیار بالا باشد، باعث اتلاف زمان و هزینه برای دانلود و آپلود مجدد فایل است.

برای حل این مشکل می‌توان با یک اسکریپت php، کار انتقال فایل از طریق پروتکل http یا ftp را به آسانی و سرعت زیاد به انجام رساند.

سرورها و هاست‌های اینترنتی به با سرعت‌های بسیار بالا به شبکه‌ی اینترنت متصل هستند و انتقال فایلی که ممکن است دانلود و آپلود آن به یک ساعت زمان نیاز داشته باشد، در عرض چندین ثانیه به انجام می‌رسد.

نکته امنیتی

پس از پایان انتقال فایل، در اولین فرصت، فایل php انتقال را از روی سرور حذف کنید، همچنین بهتر است انتقال فایل در یک زیرشاخه از دامنه‌ی مقصد به انجام برسد تا در صورت مراجعه‌ی کاربران به دامنه‌ی جدید، به طور اتفاقی، اسکریپت انتقال یا فایل منتقل شده در معرض دید آنان قرار نگیرد.

نکته‌ی دیگر پیش از اجرای اسکریپت، بررسی وجود نداشتن فایلی همنام با فایل انتقالی در شاخه‌ی فعلی است، زیرا اگر چنین فایلی از قبل موجود باشد بازنویسی خواهد شد.

روش انتقال

پیش از انتقال فایل‌ها از سرور قدیم به جدید، آن‌ها را فشرده کنید و سپس مسیر مستقیم و کامل فایل را در یکی از اسکریپت‌های زیر قرار دهید. سپس اسکریپت را در هاست مقصد آپلود نمایید و با وارد کردن آدرس آن در مرورگر، آن را اجرا کنید.

برای مثال اگر می‌خواهید فایل http://example.com/old-site.tar.gz را به هاست جدید https://rokaweb.ir منتقل کنید، ابتدا یک شاخه‌ی جدید مانند upload در هاست جدید بسازید، آدرس فایل موجود در هاست قدیمی را در اسکریپت کپی کنید. اسکریپت را در هاست جدید آپلود کنید و در پایان با اجرای دستور https://rokaweb.ir/upload/transload.php فایل را با سرعت زیاد از هاست قدیمی به هاست جدید منتقل کنید.

انتقال فایل از سرور به سرور دیگر از طریق پروتکل http

اگر فایل موجود در هاست قدیمی با استفاده از پروتکل http یا ftp بدون رمز قابل دسترسی است، از کد زیر استفاده نمایید:

<?php ini_set( 'max_execution_time', 300 ); ?>
<!doctype html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Billboard Transload</title>
</head>
<body dir="rtl">
	از سایت ما دیدن کنید: <a href="https://billboardchi.com/">بیلبورد چی</a>
	<br>
<?php
	$source = 'https://billboardchi.com/old-site.tar.gz';

	$fh = fopen( basename( $source ), 'w' );
	$ch = curl_init( $source );
	curl_setopt( $ch, CURLOPT_FILE, $fh );
	curl_exec( $ch );
	curl_close( $ch );

	fclose( $fh );

	echo 'انجام شد';
?>
</body>
</html>

انتقال فایل از هاست به هاست دیگر از طریق پروتکل ftp

اگر قصد انتقال فایل از طریق پروتکل ftp به همراه رمز را دارید، قطعه کد زیر را مطابق نیاز تغییر دهید و از آن برای جابجایی فایل کمک بگیرید:

<?php ini_set( 'max_execution_time', 300 ); ?>
<!doctype html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Billboard Transload FTP</title>
</head>
<body>
<?php
	$source = 'ftp://billboardchi.com/old-site.tar.gz';

	$fh = fopen( basename( $source ), 'w' );
	$ch = curl_init( $source );
	curl_setopt( $ch, CURLOPT_FILE, $fh );
	curl_setopt( $ch, CURLOPT_USERPWD, "USER:PASSWORD");
	curl_exec( $ch );
	curl_close( $ch );

	fclose( $fh );

	echo 'done';
?>
</body>
</html>




اخبار بیلبورد چی | جدیدترین اخبار ایران و جهان