[英]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.