我被告知这不能做,但我想在这里得到一些其他的意见.在涉及到这样的事情时,我有点像新手.
我的网站:ExampleSiteA.com
要下载的文件:ExampleSiteB.com
基本上,我从ExampleSiteB.com下载csv文件以更新我的网站ExampleSiteA.com.为此,我通过CoreFTP手动下载csv文件,然后手动将其上传到ExampleSiteA.com.该文件每天更改,我想跳过此步骤,以便我可以自动执行该过程.
请记住,我需要通过SFTP从ExampleSiteB.com下载csv文件...
我不确定是否有可能直接下载/上传文件从一台服务器到另一台服务器,如果一个是SFTP.文件大小也很大,平均大约25,000 KB/25 MB.
我还没有探索的另一个选择是要求或包括来自另一台服务器的文件......这是一种选择还是可能性?该文件位于专门用于我的站点的文件夹中,SFTP下载需要登录.
任何见解将不胜感激.提前致谢!
小智 6
到这里下载你需要的东西:http://phpseclib.sourceforge.net/
UPDATE
然后在你的脚本中:
<?php
include('Net/SFTP.php');
$url = 'http://www.downloadsite.com';
$fileToDownload = "yourCSV.csv";
$cmd = "wget -q \"$url\" -O $fileToDownload";
exec($cmd);
$sftp = new Net_SFTP('www.uploadsite.com');
if (!$sftp->login('username', 'password')) {
exit('Login Failed');
}
echo $sftp->pwd() . "\r\n";
$sftp->put('remote.file.csv', 'yourCSV.csv', NET_SFTP_LOCAL_FILE);
print_r($sftp->nlist());
?>
Run Code Online (Sandbox Code Playgroud)
如果您需要连接到第二台服务器进行下载:
$sftp2 = new Net_SFTP('www.serverFromWhichToDownload.com');
if (!$sftp2->login('username', 'password')) {
exit('Login Failed');
}
echo $sftp2->pwd() . "\r\n";
$sftp2->get('localFileName.csv', 'remoteFileName.csv');
print_r($sftp2->nlist());
Run Code Online (Sandbox Code Playgroud)
阅读文档以获取进一步的帮助和示例:http://phpseclib.sourceforge.net/documentation/net.html#net_sftp_get
要记录连接失败时的连接,请使用以下命令:
include('Net/SSH2.php');
define('NET_SSH2_LOGGING', true);
$ssh = new Net_SSH2('www.domain.tld');
$ssh->login('username','password');
echo $ssh->getLog();
Run Code Online (Sandbox Code Playgroud)
$file = 'somefile.txt'; $remote_file = 'readme.txt'; $conn_id = ftp_connect($ftp_server); $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass); if (ftp_put($conn_id, $remote_file, $file, FTP_ASCII)) { echo "successfully uploaded $file\n"; } else { echo "There was a problem while uploading $file\n"; } ftp_close($conn_id);
归档时间: |
|
查看次数: |
2375 次 |
最近记录: |