ftp через proxy

peshkin

Guest
ftp через proxy

Народ помогите.
Написал банальную функцию на php для закачки файлов по ftp.

function ftp_upload($ftp_server,$ftp_user_name,$ftp_user_pass,$destination_file,$source_file)
{
// $ftp_server - ftp.site.ru
// $ftp_user_name - login
// $ftp_user_pass - password
// $destination_file - как будет называться файл на ftp
// $source_file - имя файла для закачки

$conn_id = ftp_connect($ftp_server);

$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

if ((!$conn_id) || (!$login_result))
{
echo "FTP connection has failed!";
echo "Attempted to connect to $ftp_server for user $ftp_user_name";
exit;
}
else
{
echo "Connected to $ftp_server, for user $ftp_user_name<Br>";
}

$upload = ftp_put($conn_id, $destination_file, $source_file, FTP_BINARY);

if (!$upload)
{
echo "FTP upload has failed!";
}
else
{
echo "Uploaded $source_file to $ftp_server as $destination_file";
}

ftp_close($conn_id);

}

Так вот - как заставить ее работать через прокси?
 

peshkin

Guest
Profic, это понятно,
но есть ведь функция ftp_connect, неужели она не позволяет использовать прокси?
 

Profic

just Profic (PHP5 BetaTeam)
Напрямую - нет. Эта функция только для прямого соединения.
Для начала: существует много разновидностей ftp-проксей. От банального CONNECT до реальных ftp-проксей, однако последние каждый по своему реализуют авторизацию и указание куда на самом деле коннектиться.
Ты представляешь какя была бы головная боль у разработчиков (да и пользователей), если бы они реализовали поддержку всех этих типов?
 

peshkin

Guest
Profic, понял о чем ты;)
буду юзать функцию на курле.
 

peshkin

Guest
Прошу модератора раздела перенести этот топик в соответствующий раздел.

Profic, что скажешь по поводу такой функции:
---
function ftp_upload($proxy_server, $ftp_server,$ftp_user_name,$ftp_user_pass,$destination_file,$source_file)
{
// $ftp_server - ftp.site.ru
// $ftp_user_name - login
// $ftp_user_pass - password
// $destination_file - как будет называться файл на ftp
// $source_file - имя файла для закачки

$conn_id = ftp_connect($proxy_server);
if (!$conn_id)
return false;

$login_result = ftp_login($conn_id, ($ftp_user_name . "@" . $ftp_server), $ftp_user_pass);
if (!$login_result)
return false;

$upload = ftp_put($conn_id, $destination_file, $source_file, FTP_BINARY);
if (!$upload)
return false;

ftp_close($conn_id);
return true;
}
----
 
Сверху