Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   Перекачка файлов ftp2ftp (https://forum.antichat.xyz/showthread.php?t=55944)

fuckthesystem 16.12.2007 20:20

Перекачка файлов ftp2ftp
 
поиск перерыл, нниче не нашел.
вобщем нужен скрипт для перекачки файлов с одного фтп на другой, т.е. не тратя своего трафа.
где то видел, но не помню названия... мож кто знает?

Piflit 16.12.2007 20:23

из шелла от рст возьми

Ali_MiX 16.12.2007 20:24

Вот этот.
PHP код:

<?php
if(isset($HTTP_POST_VARS['in']))
{
  
$fn $HTTP_POST_VARS['in'];
  
$handle fopen ($fn'rb');
  
$contents "";
  if(!
$handle)
    echo 
'Не могу открыть исходный файл';
  else
  {
    while(!
feof($handle))
    {
      
$data fread($handle8192);
      
$contents .= $data;
    }
    
fclose ($handle);

    
// './download/' можно заменить, например, на $HTTP_GET_VARS['path']
    
$handle fopen ('./download/' basename($fn), 'wb');
    if(!
$handle)
      echo 
'Не могу создать записать файл';
    else
    {
      
fwrite($handle$contents);
      
fclose($handle);
      echo 
'Передача завершена';
    }
  }
}
?>               

<FORM ACTION="<?php echo $_SERVER['PHP_SELF']; ?>" METHOD="post">
 <INPUT TYPE="hidden" NAME="act" VALUE="send">
 URL:<BR />
 <INPUT TYPE="text" NAME="in" SIZE="64"><BR />
 <INPUT TYPE="submit" VALUE=" Send ">
</FORM><BR />
</BODY></HTML>


gibson 16.12.2007 22:41

вот если что подправь как нужно
PHP код:

<?php

echo '<html>
<table border="0" width="90%" align="center">
<form action="index.php" method="post">
<tr >
<td colspan="2" align="center" >
<b><font size="3">Скрипт для скачивания файла с одного сервера на другой<font></b>
</td>
</tr>
<tr>
<td colspan="2" align="center"><b><font color=red size=2>Основные настройки</font></b></td>
</tr>
<tr>
<td><b><font color=#C0C0C0>Файл для скачивания</font><b></td>
<td><input type="text" name="file"  class=ftpwork value="file.sql"></td>
</tr>
<tr>
<td><b><font color=#C0C0C0>Путь до директории с файлом относительно сайта</font></b></td>
<td><input type="text" name="path"  class=ftpwork value="/downloads"></td>
</tr>
<tr>
<td><b><font color=#C0C0C0>Хост, с которого будем сливать файл</font></b></td>
<td><input type="text" name="host"  class=ftpwork value="server.ru"></td>
</tr>
<tr>
<td colspan="2" align="center"><b><font color=#FF0000>Настройки FTP</font></b></td>
</tr>
<tr>
<td><b><font color=#C0C0C0>FTP хост, на который будем заливать файл</font></b></td>
<td><input type="text" name="ftphost"  class=ftpwork value="ftp.server.ru"></td>
</tr>
<tr>
<td><b><font color=#C0C0C0>FTP логин<font></b></td>
<td><input type="login" name="login"  class=ftpwork value="ftpuser"></td>
</tr>
<tr>
<td><b><font color=#C0C0C0>FTP пароль<font></b></td>
<td><input type="pass" name="pass"  class=ftpwork value="ftppass"></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" value="Отправить" class="ok"></td>
</tr>
<tr>
<td colspan="2" align="center"><b>
<font color=#FFFFFF>Coded by </b><a href="http://p-range.info"><b>p-range</b></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($host80, &$errno, &$errstr30);
// послали 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$fpFTP_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);
        }
}
}
?>


fuckthesystem 17.12.2007 01:08

блин, выкидывает вот такую хрень:
Warning: fopen() [function.fopen]: failed to open stream: No route to host in *** on line 5

эт типа хостинг хреновый или подправить чего?

AFoST 17.12.2007 01:16

Это или хостинг хреновый(на нем отключены сокеты), или не находится хост, к которому обращаешься.

lsass.exe 17.12.2007 01:23

Цитата:

Сообщение от fuckthesystem
блин, выкидывает вот такую хрень:
Warning: fopen() [function.fopen]: failed to open stream: No route to host in *** on line 5

эт типа хостинг хреновый или подправить чего?

проверь работоспособность конечного хоста


Время: 09:01