ايران ويج

نسخه‌ی کامل: آموزش انتقال فایل از هاست به هاست
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
برای انتقال فایلهای با حجم بالا از یک سرور به سرور دیگر زحمات زیادی لازمه و بسیار طاقت فرسا نیز هست، چون یک بار باید فایل رو دانلود کنید و سپس همون فایل رو آپلود کنید روی سروری که میخواهید. حالا فرض کنید حجم فایل شما بالای ۲۰۰ مگابایت هست و شما با اینترنت ۱۲۸ کیلو بیت به اینترنت وصل شده باشید …!!!! فکر میکنم لازم نیست دیگه بقیه ماجرا رو توضیح بدم. یه روش خوب برای راحتتر شدن این کار وجود داره و اون استفاده از یک کد PHP برای دانلود فایل از روی هاست دیگر (Remote File) هست. تابع نوشته شده در زیر برای اینکار مناسب هست و این کار رو برای شما انجام میده:


کد php:
function download_remote($url$save_path) {
    
set_time_limit (0);
    
$f fopen($save_path'w+');
    
$handle fopen($url"rb");
    while (!
feof($handle)) {
        
$contents fread($handle8192);
        
fwrite($f$contents);
    }
    
fclose($handle);
    
fclose($f);


در این متد ۸۱۹۲ بایت معادل ۸ کیلو بایت در یک زمان خوانده میشود نه کل فایل، چون اگر کل فایل در یک بار خوانده شود احتمالا خارج از حافظه تعیین شده در تنظیمات PHP خواهد بود. به عبارت دیگر کل فایل منتقل خواهد شد ولی هنگام انتقال در بخشهای ۸ کیلو بایتی منتقل میشود.

مثال نحوه ی استفاده از تابع:

کد php:
if (isset($_POST['submit'])) {
    
$url $_POST['url'];
    
$file_name basename($url);
    
$save_path $file_name;
    
download_remote($url$save_path);
}
?>
<form action="" method="post">
    <label>file address:</label><input type="text" name="url"/>
    <p>example: http://masalan.ir/sitemap.xml.gz</p>
    <input type="submit" name="submit" value="Download"/>
</form> 

در کد بالا فایل از آدرس “http://masalan.ir/sitemap.xml.gz” دانلود و در همسایگی فایل remote_download.php (فایل مربوط به کدهای بالا) ذخیره خواهد شد.
البته لازم به ذکر هست که توی تنظمات php یه مدتی برای در حالت اجرا موندن فایل در نظر میگیرن؛ که اگه از اون حد بیشتر بشه فایل بشته میشه!
معمولا در هاست‌های رایگان این تنظیمات به یکی دو دقیقه هست؛

کد php:
set_time_limit (0); 
اینو ندیده بودم Biggrin Biggrin