php ftp_put не работает для одного каталога - PullRequest
0 голосов
/ 29 мая 2020

Я использую php ftp_connect () и ftp_put () для загрузки файла с веб-сервера на внешний сервер.

Код отлично работает при загрузке в один каталог (в данном случае / global / 1 /), но не работает, когда я загружаю в другой (в данном случае / {FCADC481-CACAA556A47A} / _ schedules /). Поэтому я не думаю, что проблема заключается в коде.

Файл, который я пытаюсь загрузить, имеет размер XML, но я также пробовал использовать .mov и .avi

I пробовали как FTP_ASCII, так и FTP_BINARY

Я пробовал с ftp_pasv и без него

Оба каталога и подкаталоги имеют одинаковые атрибуты доступа к файлам (666)

Я могу загружать в оба из этих папок, используя Filezilla напрямую.

Возвращаемая ошибка: «Ядро: Обработчик ошибок (BE): PHP Предупреждение: ftp_put (): соединение закрыто; Stream-Lesefehler.»

$response = false;
$local_file = "/test.xml";                 
$remote_path = "/{".$pov."}/_schedules/";  // NOTE { and } ARE part of the folder name.
$remote_file = $remote_path  .  "test.xml";
if($ftp_conn = ftp_connect($this->ftphost, $this->ftpport,15)){ 
        if (ftp_login($ftp_conn, $this->ftpusr, $this->ftppss)) {               
            ftp_pasv($ftp_conn, true);
            if (ftp_put($ftp_conn, $remote_file, $local_file, FTP_ASCII)) {
                  $response = true;
            }
        }
}
ftp_close($ftp_conn);
return $response;

Единственное, что я могу подумать, это то, что ftp через PHP не любит папки с символом "{". Но у меня нет контроля над этим сервером, поэтому я должен его использовать.

Я знаю, что {можно использовать в PHP для расшифровки значения переменной в строке, поэтому я попытался поменять символ на другой и затем str_ заменив его снова, но это не решило проблему.

Кто-нибудь может помочь?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...