Perl ftp вопрос, как и предыдущие - PullRequest
0 голосов
/ 14 июня 2010

Мне нужно переместить или скопировать простой текстовый файл с одного веб-сайта на другой.У меня есть права администратора для обоих веб-сайтов.Первый веб-сайт имеет большой файл данных (опять же, просто текстовый файл), определенные записи отбираются и записываются в командный файл (для входа в турнир).Далее я иду через PayPal и плачу за записи.Второй сайт предназначен для клуба, проводящего турнир, и я использую IPN, чтобы вернуться к сценарию на их сайте, и, если он подтвержден, я добавляю членов команды в основной файл турнира.Я ограничен ОДНЫМ сценарием IPN на сайте турнира, потому что у меня есть множество других записей, которые приходят со всех концов.На первом сайте есть списки для штата, и нет необходимости вводить все эти данные из каждого клуба, используйте списки, как я, для всех неоплачиваемых tounamenmts.Я могу ftp-файл команды на второй сервер и поместить его в папку так же, как он был изначально создан с этого сервера, и все должно идти хорошо, но я взял примеры и попробовал их и ничего.Вот фрагмент кода:

my  $custom = $in->param('custom');
my  $filename = "$ENV{DOCUMENT_ROOT}/database/$custom";

my  $usjochost = '208.109.14.105'; 
my  $okserieshost = '208.109.181.196'; 

my  $usjocuser = 'teamentry'; 
my  $okseriesuser = 'okwaentry'; 

my  $usjocpw   = 'Password1'; 
my  $okseriespw   = 'Password1'; 

my  $file = $custom; 

my  $usjocpath ='/home/content/u/s/j/usjoc/html/database/'; 
my  $okseriespath ='/home/content/o/k/s/okseries/html/database/'; 

$ftp = Net::FTP->new($okserieshost, Debug => 0)  or die "Could not connect to '$okserieshost': $@"; 

$ftp->login($okseriesuser, $okseriespw) or die sprintf "Could not login: %s", $ftp->message; 

#$ftp->cwd(/database)  or die sprintf "Could not login: %s", $ftp->message; 
$ftp->get($filename);

#$ftp = Net::FTP->new($usjochost, Debug => 0)  or die "Could not connect to '$usjochost': $@"; 

$ftp->quit;

Мне нужно прочитать файл на первом веб-сайте (okseries.com) и записать файл на втором веб-сайте (usjoc.com).У меня нет проблем с чтением и записью файла на сервере, происходит отправка файла на второй сервер.ПОМОГИТЕ!Я не гений в PERL.

1 Ответ

2 голосов
/ 15 июня 2010

Я протестировал код, который вы создали и внедрил в него, следующий код подключится к вашему первому хосту, okserieshost и получит $ filename из папки базы данных, проверит, был ли файл загружен (если нет, то он завершит операции).

<code>#!/usr/bin/perl

use Net::FTP;

my  $path     = '/public_html/api';
my  $filename = 'index.php';

my  $host = '';
my  $user = '';
my  $pass = '';

print "Content-type: text/html\n\n"; 
$ftp = Net::FTP->new($host, Debug => 0)  or die "Could not connect to $host: $@";
print "<pre>".$ftp->message ."

\ n "; $ ftp-> login ($ user, $ pass) или die sprintf" Невозможно войти:% s ", $ ftp-> message; печать"
".$ftp->message ."

\ n "; my $ cur = $ ftp-> pwd (); my $ new = $ ftp-> cwd ($ path); if ($ cur == $ new) {$ ftp-> quit; напечатать" Directory notнайдено, выход. \ n ";} else {if ($ ftp-> size ($ path. '/'. $ filename)> = 0) {$ ftp-> get ($ path. '/'. $ filename)или die $ ftp-> message; печать "
".$ftp->message ."

\ n"; печать "Файл успешно загружен." if (-e $ filename);} else {print "Файл не найден. \ n";}} $ ftp-> quit;

Я немного изменил код, вы можете поместить этот файл на usjoc.com и запустить его в браузере, он будет отображать каждый шаг сообщения, пока не получитфайл от okseries.com. Все, что вам нужно сделать, это изменить $ путь к пути, где файл находится, но не заканчиваетсяимя каталога с / filename в случае с $ filename $ host = ftp ip или hostname $ uesr и $ pass. Я думаю, вы знаете, что входит в

ответ от URL, который вы просили просмотреть:

USJOC Entry Form on



The Club file name is EdmondSkunks1T.db
/home/content/o/k/s/okseries/html/database/EdmondSkunks1T.db
Supposedly opened /home/content/o/k/s/okseries/html/database/EdmondSkunks1T.db
Back to USJOC
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...