
12.01.2007, 11:33
|
|
Участник форума
Регистрация: 05.02.2006
Сообщений: 168
Провел на форуме: 749524
Репутация:
715
|
|
Мой скрипт для скачивания файла с одного сервера на фтп другого
Код:
<?php
echo '<html>
<head>
<title></title>
<style>
body
{
background-color: #1a1a1a;
}
table
{
border: 1px #333333 solid;
}
td,th
{
font-size: 10px;
font-family: verdana, tahoma;
color: #666666;
background-color: #1a1a1a;
border: 0px #333333 solid;
}
input
{
font-family: verdana, tahoma;
font-size: 10px;
color: grey;
background-color: #1a1a1a;
border: 1px #333333 solid;
}
a
{
font-size: 10px;
text-decoration: none;
color: grey;
}
</style>
</head>
<table border="0" width="600" align="center">
<form action="" method="post">
<tr>
<td colspan="2" align="center">
<b>Скрипт для скачивания файла с одного сервера на фтп другого</b>
</td>
</tr>
<tr>
<td colspan="2" align="center"><b>Основные настройки</b></td>
</tr>
<tr>
<td>Файл для скачивания</td>
<td><input type="text" name="file" size="50" value="file.sql"></td>
</tr>
<tr>
<td>Путь до директории с файлом относительно сайта</td>
<td><input type="text" name="path" size="50" value="/downloads"></td>
</tr>
<tr>
<td>Хост, с которого будем сливать файл</td>
<td><input type="text" name="host" size="50" value="server.ru"></td>
</tr>
<tr>
<td colspan="2" align="center"><b>Настройки FTP</b></td>
</tr>
<tr>
<td>FTP хост, на который будем заливать файл</td>
<td><input type="text" name="ftphost" size="50" value="ftp.server.ru"></td>
</tr>
<tr>
<td>FTP логин</td>
<td><input type="login" name="login" size="50" value="ftpuser"></td>
</tr>
<tr>
<td>FTP пароль</td>
<td><input type="pass" name="pass" size="50" value="ftppass"></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" value="Отправить"></td>
</tr>
<tr>
<td colspan="2" align="center">
Coded by <b>p-range</b> - <a href="http://cf-team.net">cf-team.net</a>,
<a href="http://p-range.info">p-range.info</a></td>
</tr>
</form>
</table>';
if(isset($_POST['file']) && isset($_POST['path'])
&& isset($_POST['host']) && isset($_POST['ftphost'])
&& isset($_POST['login']) && isset($_POST['pass']))
{
$file = $_POST['file']; // файл для скачивания
$path = $_POST['path']; // путь до директории с файлом относительно сайта
$host = $_POST['host']; // Хост, с которого будем сливать файл
$ftphost = $_POST['ftphost']; // FTP хост, на который будем заливать файл
$login = $_POST['login']; // FTP логин
$pass = $_POST['pass']; // FTP пароль
// открыли соединение
$so = fsockopen($host, 80, &$errno, &$errstr, 30);
// послали GET форму (простой URL + указание вирт. хоста)
fputs($so,"GET $path/$file HTTP/1.0\nHOST: $host\n\n");
// читаем все, пока не наступит "конец заголовка" (т.е. начало документа)
// если наступит, то со след. байта начнется документ
while(fgets($so,2048)!="\r\n" && !feof($so));
unset($buf);
// читаем документ в переменную
while(!feof($so)) $buf.=fread($so,2048);
// Готово. В переменной $buf храниться скаченный документ (т.е. файл)
// Максимум можно читать порциями по 64K-1байт
// закрываем сокет
fclose($so);
echo "Download file, size ".strlen($buf)." bytes.<br>"; flush();
// используем скаченный файл (в переменной) по назначению...
$f=fopen($file,"wb+");
fwrite($f,$buf,strlen($buf));
fclose($f);
$ftp = ftp_connect($ftphost);
if($ftp)
{
@$res = ftp_login($ftp,$login,$pass);
if($res)
{
$fp = fopen($file, "r");
$fput = ftp_fput($ftp, $file, $fp, FTP_BINARY);
fclose($fp);
if(!$fput)
{
echo "<font color='#cc1233'>Error transfering</font>";
ftp_quit($ftp);
}
else
{
echo "<font color='#666666'>Success transfering <b>".$file."</b></font>";
}
}
else
{
echo "<font color='#cc1233'>Error login</font>";
ftp_quit($ftp);
}
}
}
?>
Скачать можно отсюда:
http://p-range.info/pub/transfer.zip
|
|
|