در بسیاری از سایت های اپلودسنتر قابلیتی وجود دارد که شما میتوانید لینک دانلود مستقیم فایلی را به ورودی بدهید و بدون دانلود شدن فایل روی کامپیوتر شما، فایل آپلود شود. در ادامه کد و آموزش ساخت یک اپلود از لینک (remote url upload) با دستورات PHP را خواهیم داد.
اسکریپت زیر دارای دو پارامتر ورودی می باشد: 1- لینک دانلود مستقیم فایل 2- نام فایل، برای تغییرنام فایل آپلود شده
بخش اول:
ابتدا یک فرم برای اعمال ورودی ها ایجاد میکنید که دارای دو پارامتره ورودی لینک دانلود و نام فایل می باشد:
<html> <body> <form action="" method="post" style="text-align: center;margin: 50px 15px;"> link 1: <input type="text" name="l1" class="input" >Name 1: <input type="text" name="n1" class="input" ><br> <input type="submit" class="btn"><br> </form> <style> .input{width: 30%;height: 25px;margin: 15px;} .btn {background: #33d9ee;padding: 10px;font-size: 16px;box-shadow: none;border: 2px #ccc solid;border-radius: 4px;} </style> </body> </html>
بخش دوم:
در کد زیر باید پارامتر های مسیر فایل، یوزر پسورد ای پی هاست دانلود را جایگزین کنید. برای جایگزین کردن این مقادیر کافیست مقدار ورودی متغیر های زیر را در کد تغییر دهید:
$dir = مسیر آپلود فایل روی هاست که در کد زیر این مسیر /public_html/ می باشد.
$ftp = ای پی یا ادرس هاست دانلود جهت وصل شدن ftp، مقدار داخل پرانتز را تغییر دهید. مثال: $ftp = ftp_connect('55.22.3333.6');
$login_result = یوزر نیم و پسورد هاست دانلود جهت وصل شدن ftp ، مقادیر دوم و سوم داخل پرانتز را تغییر دهید. مثال: $login_result = ftp_login($ftp, 'myusername', 'password'); نکته اخر مشخص کردن فرمت فایل می باشد، به طور پیش فرض فرمت فایل zip است ، برای تغییر میتوانید خط زیر را در اسکپریت پیدا کرده و ویرایش کنید:
$remote_file = "/$dir/$renamefile.zip";
<?php $dir = '/public_html/'; if(isset($_POST['l1'])) { $file = $_POST['l1']; $renamefile = $_POST['n1']; $newfile = basename($file); if (!copy($file, $newfile)) { echo "failed to copy file $file...\n"; } $file = $newfile; $remote_file = "/$dir/$renamefile.zip"; $ftp = ftp_connect('ftp_ip'); $login_result = ftp_login($ftp, 'frp_username', 'ftpp_password'); if (ftp_put($ftp, $remote_file, $file, FTP_BINARY)) { echo "<p style='color: #14b214;'>$file upload :) </p>"; if (!unlink($file)) { echo("<p style='color: #f30b3b;'>Error deleting file $file </p><br>"); } else { echo("<p style='color: #14b214;'>$file Delete :) </p><br>"); } } else { echo "<p style='color: #f30b3b;'>file $file NOT upload ! :( </p><br>"; } ftp_close($ftp); } ?>