我试图使用$sftp()将PDF文档从舞台服务器上传到远程位置;
代码:
$sftp = new SFTP($config::SFTP_SERVER);
// login to remote server
if (!$sftp->login($config::SFTP_USER, $config::SFTP_PASSWORD)) {
throw new Exception('Login failed');
}
// move to relevant directory
$sftp->chdir('fatca');
// upload file
$uploadFile = $sftp->put('test-pdf-upload.pdf', '/srv/www/vhosts/stage.johno.com/fatca/src/uploads/pdfs/345-553453-434__05122017_16:45:26.pdf', NET_SFTP_LOCAL_FILE);
// Error checking for local env only
var_dump($uploadFile);
var_dump($sftp->getSFTPLog());我希望看到同样的PDF,其中包含用户数据和一些用户上传的图像。我还确认了原始PDF已经成功地在暂存服务器上创建,它是完整的,并显示了相关的信息。
结果文件是在新的远程服务器位置创建的,但是它已损坏/不可读。
var_dump($sftp->getSFTPLog());的产出也不令人鼓舞:
bool(false)我在这里做错什么了?感觉我已经很好地遵循了phpseclib文档..。虽然这是在屏幕前漫长而漫长的日子之一!
任何建议都会一如既往地受到极大的赞赏。
发布于 2017-12-05 21:19:33
您正在使用phpseclib 2.0。我看得出来,因为你在做new SFTP()而不是new Net_SFTP()。对于2.0,您需要执行SFTP::SOURCE_LOCAL_FILE。例如:
$uploadFile =
$sftp->put(
'test-pdf-upload.pdf',
'/srv/www/vhosts/stage.johno.com/fatca/src/uploads/pdfs/345-553453-434__05122017_16:45:26.pdf',
SFTP::SOURCE_LOCAL_FILE);https://stackoverflow.com/questions/47659231
复制相似问题