2014-04-08 24 views
0

嗨,我面臨的一個問題,同時上傳文件到文件夾,我的代碼如下:上傳文件到指定目錄,通過phpseclib

set_time_limit(0); 
include('Net/SFTP.php'); 
include('Crypt/RSA.php'); 
$key = new Crypt_RSA(); 
$key->loadKey(file_get_contents('key/key.pem')); 
$sftp = new Net_SFTP('ec2-xx-xx-xx-xxx.compute.amazonaws.com'); 
if (!$sftp->login('root', $key)) { 
    exit('Login Failed'); 
} 
else{ 
    echo'Login Successfull'; 
} 
echo '<br>'; 
print_r($sftp->nlist($sftp->chdir("new_folder"))); 
echo '<br>'; 
$sftp->put('file.txt', 'hello, world!'); 

的問題是,即使改變了目錄後new_folder。它將文件放入根文件夾中。任何幫助將是非常可觀的。 NLIST的 輸出

Array ([0] => etc [1] => selinux [2] => srv [3] => dev [4] => boot [5] => smnt [6] => sbin [7] => image [8] => opt [9] => var [10] => . [11] => tmp [12] => sys [13] => new_folder [14] => lost+found [15] => .. [16] => .kconfig [17] => mnt [18] => lib [19] => root [20] => .profile [21] => lib64 [22] => home [23] => proc [24] => isa_home [25] => bin [26] => usr) 
+2

你肯定'new_folder'存在?順便說一句,'chdir()'的返回值是一個布爾值,所以將它作爲'nlist()'的第一個參數可能不會像你認爲的那樣工作。 –

+0

new_folder僅僅是我在這個問題中最初提出的一個例子,它有些不同。 – Ethen

+0

你檢查過' - > chdir()'的返回值嗎?如果它是'假',它不會改變目錄。 –

回答

0

謝謝大家我已經解決了使用下面的代碼這個問題:

$success_t = $sftp->put($remote_directory . $temps_file,$local_directory . $temps_file);