当使用phpseclib通过SFTP上传时,远程文件有0字节


remote files have 0 bytes when uploaded via sftp with phpseclib

我有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。解决方案是使第二个参数成为文件位置的绝对路径。