PHP kullanırken FTP hatası alıyorum nasıl

3 Cevap php

Ben bir uzak sunucuda oturum ve dosyaları yeniden adlandırmak için çalışır, PHP kullanarak bir komut dosyası var.

Kod şu php.net sitesinden bu örnekteki gibi bir şey görünüyor:

if (ftp_rename($conn_id, $old_file, $new_file)) {
 echo "successfully renamed $old_file to $new_file\n";
} else {
 echo "There was a problem while renaming $old_file to $new_file\n";
}

ama ... hata neydi? İzinler, böyle bir dizin, tam disk?

Nasıl PHP FTP hatayı geri alabilirim? Böyle bir şey:

echo "There was a problem while renaming $old_file to $new_file: 
the server says $error_message\n";

3 Cevap

Burada FTP API bakıyor:

http://us.php.net/manual/en/function.ftp-rename.php

Doğru ya da yanlış bir şey ama almak için herhangi bir yolu var gibi görünüyor değil.

Ancak, ham RENAME komutu göndermek için ftp_raw kullanın ve sonra döndürülen mesajı ayrıştırmak.

Dönüş değeri false olup olmadığını () error_get_last kullanabilirsiniz.

Ben böyle bir şey yapıyorum:

$trackErrors = ini_get('track_errors');
ini_set('track_errors', 1);
if (!@ftp_put($my_ftp_conn_id, $tmpRemoteFileName, $localFileName, FTP_BINARY)) {
   // error message is now in $php_errormsg
   $msg = $php_errormsg;
   ini_set('track_errors', $trackErrors);
   throw new Exception($msg);
}