我需要将一个简单的文本文件从一个网站移动或复制到另一个网站。 我对这两个网站都拥有管理员权限。第一个网站有一个大型数据文件(同样只是一个文本文件),选择某些记录并写入团队文件(用于参加锦标赛)。接下来,我通过paypal支付条目。第二个站点是运行锦标赛的俱乐部,我使用IPN返回他们网站上的脚本,如果验证了,我将团队成员添加到锦标赛的主文件中。我被限制在锦标赛网站上的ONE IPN脚本,因为我有大量来自全国各地的其他参赛作品。第一个站点有州的名单,不需要输入每个俱乐部的所有数据,使用像我用于所有非paypal 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的天才。
答案 0 :(得分:2)
我测试了您制作并实现的代码,以下代码将连接到您的第一个主机,okserieshost并从数据库文件夹中获取$ filename,验证文件是否已下载(如果不是,它将结束操作)。< / p>
#!/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 ."</pre><br>\n";
$ftp->login($user,$pass) or die sprintf "Could not login: %s", $ftp->message;
print "<pre>".$ftp->message ."</pre><br>\n";
my $cur = $ftp->pwd();
my $new = $ftp->cwd($path);
if ($cur == $new) {
$ftp->quit;
print "Directory not found, exiting.\n";
} else {
if ($ftp->size($path.'/'.$filename) >= 0) {
$ftp->get($path.'/'.$filename) or die $ftp->message;
print "<pre>".$ftp->message ."</pre><br>\n";
print "File downloaded with success." if (-e $filename);
} else {
print "File not found.\n";
}
}
$ftp->quit;
我已经改变了一些代码,你可以将这个文件放在usjoc.com上并在浏览器上运行它,它会显示通信的每一步,直到它从okseries.com获取文件。 您所要做的就是将$ path更改为文件所在的路径,但不要使用/结束目录名称 在$ filename上的文件名 $ host = ftp ip或hostname $ uesr和$ pass我想你知道里面发生了什么
您要求查看的网址回复:
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