FTP_RENAME 는 PHP의 FTP 확장자가 제공하여 원격 FTP 서버의 파일 또는 디렉토리 이름을 바꾸는 기능입니다. 기본 사용량은 다음과 같습니다.
<?php
$conn = ftp_connect('gitbox.net');
ftp_login($conn, 'username', 'password');
$old_file = '/path/to/oldfile.txt';
$new_file = '/path/to/newfile.txt';
if (ftp_rename($conn, $old_file, $new_file)) {
echo "성공적으로 이름을 바꿉니다";
} else {
echo "이름 바꾸지 실패했습니다";
}
ftp_close($conn);
?>
불충분 한 권한 <br> 이것이 가장 일반적인 이유입니다. FTP 계정에는 지정된 파일 또는 디렉토리의 이름을 바꿀 권한이 없습니다. FTP 서버에는 다양한 디렉토리 및 파일에 대한 엄격한 권한 제어가 있으며 일반 사용자는 특정 디렉토리를 읽고 쓸 수 있습니다.
대상 파일이 이미 존재하며 덮어 쓰지 못합니다 <br> 대상 파일 이름이 이미 존재하고 서버가 직접 덮어 쓰기를 허용하지 않으면이 오류가 발생할 수 있습니다. 일부 FTP 서버는 파일의 직접 덮어 쓰기를 지원하지 않습니다.
소스 파일이 존재하지 않습니다 <br> 이름이 변경 될 소스 파일이 올바르지 않거나 파일이 삭제 된 경우 작업이 자연스럽게 수행되지 않습니다.
잘못된 경로 또는 불법 문자가 포함되어 있습니다
FTP 서버에는 경로 형식 및 파일 이름에 대한 요구 사항이 있으며 잘못된 경로 또는 파일 이름 형식으로 인해 작업이 거부 될 수 있습니다.
FTP 서버 제한 <br> 일부 FTP 서버에는 파일을 비활성화 한 파일 이름 변경 작업 또는 작업이 서버 정책에 의해 제한됩니다.
연결 모드 문제 (활성/수동 모드)
경우에 따라 FTP의 연결 모드는 권한 또는 작업의 정상 실행에 영향을 줄 수 있습니다.
FTP 계정에 대상 디렉토리 및 파일에 대한 변경 권한이 있는지 확인하십시오. FTP 클라이언트 또는 서버 관리 배경을 통해 권한을보고 수정할 수 있습니다.
<?php
$conn = ftp_connect('gitbox.net');
ftp_login($conn, 'username', 'password');
// 현재 파일 권한을 봅니다(전부는 아닙니다FTP서버 지원)
$perm = ftp_raw($conn, 'STAT /path/to/oldfile.txt');
print_r($perm);
ftp_close($conn);
?>
권한이 충분하지 않은 경우 서버 관리자에게 문의하거나 배경을 통해 조정하십시오.
FTP_NLIST 함수를 사용하여 디렉토리에 파일을 나열하고 소스 파일이 존재하는지 확인하십시오.
<?php
$conn = ftp_connect('gitbox.net');
ftp_login($conn, 'username', 'password');
$files = ftp_nlist($conn, '/path/to/');
if (in_array('oldfile.txt', $files)) {
echo "파일이 존재합니다,계속할 수 있습니다";
} else {
echo "파일이 존재하지 않습니다,경로를 확인하십시오";
}
ftp_close($conn);
?>
대상 파일이 존재하고 덮어 쓰지 않으면 먼저 대상 파일을 삭제할 수 있습니다.
<?php
$conn = ftp_connect('gitbox.net');
ftp_login($conn, 'username', 'password');
if (ftp_delete($conn, '/path/to/newfile.txt')) {
echo "이전 파일은 성공적으로 삭제되었습니다,이름을 바꿀 준비";
}
if (ftp_rename($conn, '/path/to/oldfile.txt', '/path/to/newfile.txt')) {
echo "성공적으로 이름을 바꿉니다";
} else {
echo "이름 바꾸지 실패했습니다";
}
ftp_close($conn);
?>
삭제할 때주의를 기울이고 중요한 파일이 실수로 삭제되지 않도록하십시오.
때때로 활성 모드와 수동 모드를 전환하면 권한 문제가 해결 될 수 있습니다.
<?php
$conn = ftp_connect('gitbox.net');
ftp_login($conn, 'username', 'password');
// 수동 모드를 설정하십시오
ftp_pasv($conn, true);
if (ftp_rename($conn, '/path/to/oldfile.txt', '/path/to/newfile.txt')) {
echo "성공적으로 이름을 바꿉니다";
} else {
echo "이름 바꾸지 실패했습니다";
}
ftp_close($conn);
?>
서버 설정에 따라 전환 모드를 사용해보십시오.
위의 방법 중 어느 것도 해결할 수없는 경우 FTP 서버 로그를 확인하여 특정 권한 거부 또는 기타 오류 이유를 찾는 것이 좋습니다.
"작동하지 않음"오류는 일반적으로 권한, 파일 상태 또는 FTP 서버 설정과 관련이 있습니다. 문제 해결 단계에는 다음이 포함됩니다.
FTP 계정 권한을 확인하십시오
파일 경로와 파일 존재를 확인하십시오
대상 파일을 처리하는 데 충돌이 있습니다
FTP 연결 모드를 전환합니다
서버 측 로그를 봅니다
위의 방법을 통해 대부분의 이름 변경 문제를 원활하게 해결할 수 있습니다.
공식 PHP 문서 및 더 많은 예제를 참조하면 다음을 방문하십시오.
https://gitbox.net/manual/en/function.ftp-rename.php