FTP_RENAME est une fonction fournie par l'extension FTP dans PHP pour renommer des fichiers ou des répertoires sur les serveurs FTP distants. L'utilisation de base est la suivante:
<?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 "Renommer avec succès";
} else {
echo "Renommer a échoué";
}
ftp_close($conn);
?>
Autorisations insuffisantes <br> C'est la raison la plus courante. Le compte FTP n'a pas l'autorisation de renommer le fichier ou le répertoire spécifié. Le serveur FTP a un contrôle d'autorisation strict sur différents répertoires et fichiers, et les utilisateurs ordinaires peuvent ne pouvoir lire et écrire certains répertoires.
Le fichier cible existe déjà et ne peut pas être écrasé <br> Cette erreur peut également se produire si le nom de fichier cible existe déjà et que le serveur n'autorise pas l'écrasement direct. Certains serveurs FTP ne prennent pas en charge l'écrasement direct des fichiers.
Le fichier source n'existe pas <br> Si le fichier source à renommer est incorrect ou si le fichier a été supprimé, l'opération ne sera naturellement pas effectuée.
Chemin incorrect ou contient des caractères illégaux
Le serveur FTP a des exigences pour le format de chemin et le nom de fichier, et le format de chemin ou de nom de fichier incorrect peut entraîner le rejet de l'opération.
Restrictions du serveur FTP <br> Certains serveurs FTP ont des opérations de changement de nom de fichiers désactivées, ou l'opération est limitée par les stratégies du serveur.
Problème de mode de connexion (mode actif / passif)
Dans certains cas, le mode de connexion de FTP peut affecter l'exécution normale des autorisations ou des opérations.
Assurez-vous que le compte FTP a des autorisations de renommer le répertoire cible et les fichiers. Vous pouvez afficher et modifier les autorisations via l'arrière-plan de gestion du client ou du serveur FTP.
<?php
$conn = ftp_connect('gitbox.net');
ftp_login($conn, 'username', 'password');
// Afficher les autorisations de fichiers actuels(Pas tousFTPPrise en charge du serveur)
$perm = ftp_raw($conn, 'STAT /path/to/oldfile.txt');
print_r($perm);
ftp_close($conn);
?>
Si les autorisations sont insuffisantes, veuillez contacter l'administrateur du serveur ou s'ajuster via l'arrière-plan.
Utilisez la fonction ftp_nlist pour répertorier les fichiers dans le répertoire et confirmez si le fichier source existe.
<?php
$conn = ftp_connect('gitbox.net');
ftp_login($conn, 'username', 'password');
$files = ftp_nlist($conn, '/path/to/');
if (in_array('oldfile.txt', $files)) {
echo "Le fichier existe,Peut continuer";
} else {
echo "Le fichier n'existe pas,Veuillez vérifier le chemin";
}
ftp_close($conn);
?>
Si le fichier cible existe et ne peut pas être écrasé, vous pouvez d'abord supprimer le fichier cible:
<?php
$conn = ftp_connect('gitbox.net');
ftp_login($conn, 'username', 'password');
if (ftp_delete($conn, '/path/to/newfile.txt')) {
echo "L'ancien fichier a été supprimé avec succès,Se préparer à renommer";
}
if (ftp_rename($conn, '/path/to/oldfile.txt', '/path/to/newfile.txt')) {
echo "Renommer avec succès";
} else {
echo "Renommer a échoué";
}
ftp_close($conn);
?>
Soyez prudent lors de la suppression et assurez-vous que les fichiers importants ne seront pas supprimés par erreur.
Parfois, la commutation entre les modes actifs et passives peut résoudre le problème d'autorisation:
<?php
$conn = ftp_connect('gitbox.net');
ftp_login($conn, 'username', 'password');
// Définir le mode passif
ftp_pasv($conn, true);
if (ftp_rename($conn, '/path/to/oldfile.txt', '/path/to/newfile.txt')) {
echo "Renommer avec succès";
} else {
echo "Renommer a échoué";
}
ftp_close($conn);
?>
Essayez de changer le mode en fonction des paramètres du serveur.
Si aucune des méthodes ci-dessus ne peut être résolue, il est recommandé de vérifier le journal du serveur FTP pour découvrir l'autorisation spécifique refusée ou d'autres raisons d'erreurs.
L'erreur "Opération non autorisée" est généralement liée aux autorisations, à l'état du fichier ou aux paramètres du serveur FTP. Les étapes de dépannage comprennent:
Confirmer les autorisations du compte FTP
Confirmez le chemin du fichier et l'existence du fichier
Il y a un conflit dans la gestion du fichier cible
Mode de connexion FTP commutateur
Afficher les journaux côté serveur
Grâce aux méthodes ci-dessus, la plupart des problèmes de changement de nom peuvent être résolus en douceur.
Pour référence à la documentation officielle du PHP et plus d'exemples, veuillez visiter:
https://gitbox.net/manual/en/function.ftp-rename.php