2016-11-02 5 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"; 
} 

ques 1. 디렉토리를 만들 수 없습니다. 이 스크립트에 문제가 있습니까?

QUES 각 폴더 같은 하나 하나를 만들 수 2. 암,

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

그래서 문제가 관련이 아무것도 권한은?

Ques 3. file_exists 조건은 항상 실패합니다. 원격 서버에 디렉토리가 존재하는지 확인하는 다른 방법이 있습니까?

감사

답변

2

문서는 명확하게 기본 비 재귀 행동 때문에 당신이 명시 적으로 "재귀 플래그를"추가해야한다고. 당신이 그 같은 것을 사용한다는 뜻

:

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

참조 : http://php.net/manual/en/function.ssh2-sftp-mkdir.php

+0

예,이 재귀 적 폴더 구조를 만들 잘 작동한다. 하지만 여전히 폴더가 존재하는지 여부를 확인할 수 없습니다. 그것에 관한 어떤 생각. 답변 해주셔서 감사합니다. –

관련 문제