2014-02-25 3 views
3

SFTP 서버의 '수신'폴더에 업로드하려는 CSV가 있습니다. 나는 이것을하기 위해 phpseclib을 사용하고있다. 연결은 이미 있지만 아무것도 출력하지 않습니다.PHP (phpseclib)를 통해 SFTP 서버에 파일 업로드

이전에 SFTP를 다루지 않았기 때문에 내가 한 일이 맞는지 확실하지 않습니다. 내 코드는 다음과 같습니다.

$file = "leads.csv"; 

$server = "41.160.150.200"; 
//$server = "ft.bayport.co.za"; 
$port = "22"; 
$username = ""; 
$password = ""; 

//username and password removed for security reasons 

set_include_path(get_include_path() . PATH_SEPARATOR . 'phpseclib'); 

include 'Net/SFTP.php'; 

define('NET_SFTP_LOGGING', NET_SFTP_LOG_COMPLEX); // or NET_SFTP_LOG_SIMPLE 

$sftp = new Net_SFTP($server); 

// Check SFTP Connection 
if (!$sftp->login($username, $password)) { 
    echo 'Login Failed.'; 
    echo $sftp->getSFTPLog(); 
}else{ 

echo 'Connected to SFTP.'; 

echo $sftp->pwd(); 

// Upload CSVs to SFTP incoming folder 
    echo $upload = $sftp->put("incoming/".$file, "./bayport/".$file, NET_SFTP_LOCAL_FILE); 

} 

정말 도움이됩니다. 감사!

+0

해당 스크립트의 결과는 무엇입니까? 로그인이 실패하거나 성공적으로 연결합니까? pwd()는 기대했던 출력을 리턴합니까? '$ sftp-> put()'은 업로드 성공 여부에 따라 boolean 값을 반환합니다. idk이 당신이 예상 한 것인가? – neubert

+0

안녕하세요 @neubert 답변 해 주셔서 감사합니다. 연결되었습니다. 나는 지금 무슨 문제인지 알고있다. "incoming /"은 "/ incoming /"이어야합니다. – maikelsabido

답변

3

이제 스크립트의 문제점을 알고 있습니다.

원격 디렉토리 URL이 잘못되었습니다. "incoming /"은 "/ incoming /"이어야합니다.