[英]phpseclib sftp->put() command: File contents are just a string, not the expected PDF document
我正在尝试使用 $sftp-put() 将 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 文档......尽管它是在屏幕前度过的漫长而漫长的日子之一!
任何建议一如既往地非常感谢。
您正在使用 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);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.