我有Server 2008 R2与xampp(1.7.7)运行。我尝试使用SFTP与phpseclib。当我手动加载PHP页面时,一切都很好。当通过cronjob加载页面时,我在远程计算机上得到0字节的文件。
下面是PHP代码:$sftp = new Net_SFTP('remote.server');
if (!$sftp->login('user', 'password')) {
exit('Login Failed');
}
$sftp->put($filename.".DAT", $filename.".DAT", NET_SFTP_LOCAL_FILE);
,这里是cronjob的.bat:
@E:'WSERVER'xampp'php'php.exe -f E:'WSERVER'xampp'htdocs'sites'anq'file.php
问题是什么?无论如何,本地文件都很好…
认为j
Net_SFTP::put()调用的第二个参数如下:
$filename.".DAT"
我的猜测是这是一个相对路径,并且cron作业(或Windows Scheduler任务)正在运行的目录与手动运行时的目录不同。
ie。解决方案是使第二个参数成为文件位置的绝对路径。