Файл загрузки ftp_get на удаленном сервере не смог открыть поток: нет такого файла или каталога - PullRequest
0 голосов
/ 28 октября 2018
<?php
$local_file = 'filename';
$remote_file = '/folder name/filename';
$ftp_server ='IP';
$ftp_user_name = 'NAME';
$ftp_user_pass = 'PW';

// set up basic connection
$conn_id = ftp_connect($ftp_server);

// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// turn passive mode on
ftp_pasv($conn_id, true);

// upload a file
if (ftp_get($conn_id, $remote_file, $local_file, FTP_BINARY)) {
echo "successfully uploaded $local_file\n";
} else {
echo "There was a problem while uploading $local_file\n";
}

// close the connection
ftp_close($conn_id);
?>

Я успешно использую приведенный выше скрипт на другом сервере с файлом, расположенным в корневой папке.Но на этом мне нужно получить файл, который находится в подкаталоге (скажем, «имя папки» на данный момент).Я пробовал разные вещи, но все выдают ошибку "не удалось открыть поток: нет такого файла или каталога".

Я пробовал:

$remote_file = '/folder name/filename.csv';
$remote_file = './folder name/filename.csv';
$remote_file = '../folder name/filename.csv';
$remote_file = '/../folder name/filename.csv';

Я впервые сталкиваюсь сКоманда ftp_get.Может кто-нибудь, пожалуйста, помогите, я сильно застрял ... не знаю, что я делаю не так здесь

1 Ответ

0 голосов
/ 28 октября 2018

Для тех, кто может столкнуться с той же проблемой, я разобрал ее, добавив следующие строки кода (используя функцию ftp_chdir), и она работала нормально:

// turn passive mode on
ftp_pasv($conn_id, true);

echo "Current directory: " . ftp_pwd($conn_id) . "\n";

// try to change the directory to somedir
if (ftp_chdir($conn_id, "Live Stock")) {
    echo "Current directory is now: " . ftp_pwd($conn_id) . "\n";
} else { 
    echo "Couldn't change directory\n";
}

// upload a file
if (ftp_get($conn_id, $remote_file, $local_file, FTP_BINARY)) {
echo "successfully uploaded $local_file\n";
} else {
echo "There was a problem while uploading $local_file\n";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...