2016-11-02 44 views
-1

我試圖在使用PHP的遠程SFTP服務器中創建目錄。 但後來總是無法創建。無法在使用PHP的遠程服務器中遞歸創建文件夾

以下是我試過的。

$connection = ssh2_connect($server, 22); 
$path = "images/vehicle/car/sports/"; 
if(ssh2_auth_password($connection, $username, $password)){ 
    echo "connected\n"; 
    $sftp = ssh2_sftp($connection); 
    if (file_exists('ssh2.sftp://' . $sftp . '/' . $path)) { 
     echo "present\n"; 
    } else { 
     ssh2_sftp_mkdir($sftp, $path); 
     $contents = file_get_contents('car.jpeg'); 
     file_put_contents("ssh2.sftp://$sftp/$path/car.jpeg", $contents); 
    } 
} else { 
    echo "connection failed\n"; 
} 

問題1.無法創建目錄。這個腳本中有沒有問題?

疑問句2.我能夠創建每個文件夾逐個這樣,

ssh2_sftp_mkdir($sftp, '/images'); 
ssh2_sftp_mkdir($sftp, '/images/vehicle'); 
ssh2_sftp_mkdir($sftp, '/images/vehicle/car'); 

那麼,相關的問題這個事情的權限?

問題3. file_exists條件總是失敗。是否有另一種方法來檢查遠程服務器中是否存在目錄?

感謝

回答

2

的文件明確指出,你必須添加一個明確的「遞歸標誌」,因爲默認是非遞歸行爲。

這意味着你應該使用類似的東西:

ssh2_sftp_mkdir($sftp, $path, 0700, true); 

參見:http://php.net/manual/en/function.ssh2-sftp-mkdir.php

+0

是的,這是工作的罰款,以創建遞歸文件夾結構。但是仍然無法檢查文件夾是否存在。任何想法。感謝你的回答。 –

相關問題