PHP ftp_put создает файл, но не двигается

Я пытаюсь отправить файл через FTP-соединение с одного сервера на другой. Я могу создать соединение и отправить файл в нужную папку.

Файл создан, но имеет 0 байтов. Кроме того, функция php не работает через некоторое время с этим сообщением об ошибке:

Время соединения истекло

Я также изменил разрешения для папки на сервере, получающем файл, он имеет общедоступный read, write а также execute разрешения, однако, когда новый файл поступает на сервер, он не имеет разрешения по умолчанию, но только read,

Что я могу делать не так?

Это мой код:

$localFile = $_SERVER['DOCUMENT_ROOT'].'/images/'.$file;
$moveFile  = '/public_html/images/'.$file;

$ftp_server   = 'ftp.mywebsite.com';
$ftp_username = 'xxxxxx';
$ftp_password = 'xxxxxx';

$ftp_connection = ftp_connect($ftp_server) or die("Could not connect to $ftp_server");
$ftp_login      = ftp_login($ftp_connection, $ftp_username, $ftp_password);

if ( ftp_put($ftp_connection, $moveFile, $localFile, FTP_ASCII) ) {
print_r('Completed');
} else {
print_r('Error');
}

1

Решение

У меня была такая же проблема, и я решил ftp_pasv($conn_id, true); сразу после входа по ftp — мой код как ниже

$ssl_connection_id = ftp_ssl_connect(FTP_HOST);
if($ssl_connection_id)
{
$login = ftp_login($ssl_connection_id,FTP_USERNAME, FTP_PASSWORD);
ftp_pasv($ssl_connection_id, true);
if($login)
{
if (ftp_put($ssl_connection_id,FTP_PATH.$filename, $localFile, FTP_ASCII))
{
echo "successfully uploaded \n";

}
}
}

Вот и все, еще одно отличие состоит в том, что я использую использовать IP-адрес вместо URL (ftp.mywebsite.com), как 5.xx.xx.xxx

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector