В настоящее время я пытаюсь использовать PHP для передачи небольших файлов между нашим сервером и удаленным сервером FTPS (FTP через SSL).Я стандартно справляюсь, чтобы это сделать, то есть file_put_contents, file_get_contents и т. Д. Со следующим контекстом потока:
stream_context_create(array('ftp' => array('overwrite' => true), 'ssl' => array('allow_self_signed' => true)))
Я передаю этот поток контекста, используя следующий кодОн может просто подключиться к серверу FTPS, но когда дело доходит до создания удаленного файла, сам файл совершенно пустой.Пустой, как 0 для размера файла.
if(false === file_exists($localFile))
{
throw new Exception("Local file, {$localFile}, does not exist.");
}
if(false === $localFileContents = file_get_contents($localFile))
{
throw new Exception("Could not open Local file, {$localFile}.");
}
if(false === file_put_contents("{$this->url}{$remoteFile}", $localFileContents, FILE_APPEND, $this->context))
{
throw new Exception("Could not write to remote file, {$remoteFile}.");
}
Расположение удаленного файла, т.е. $ this-> url, имеет следующий формат: "ftps: // {user}: {pass} @ {host}: {port} "
В настоящее время мы используем установку Windows / Apache, поэтому я не могу использовать ftp_ssl_connect () без компиляции наших собственных двоичных файлов PHP.Мы все равно не могли пойти по этому пути, так как это серьезное изменение в нашей среде.