Как отправить файл по защищенному протоколу FTP SSL
Я ценю любую помощь, которую можно предложить по этому вопросу. В конце онлайн-регистрации я беру данные клиента (несколько полей), помещаю их в файл CSV и пытаюсь отправить другому клиенту по протоколу SSL, но понятия не имею, как это делается. Я также храню информацию в локальной базе данных и надеюсь, что процесс в чем-то похож.
Мне уже были отправлены ссылки для просмотра инструкций SSH2 из php.net SSN2SSN2
Но быть честно говоря, для меня это все равно что читать по-китайски. Я не понимаю инструкций и не собираюсь устанавливать какие-либо расширения, изменять файл PHP.ini или что-либо в этом роде (тем более, что мы не владеем сервером, через который передается информация).
Существует ли простой и безопасный способ передачи этого файла по предоставленному нам протоколу SSL?
Спасибо!
2 answers
Единственным способом, которым мне удалось выполнить ftp через SSL с использованием php, было использовать функцию exec() php для выполнения команды curl. Библиотека curl PHP не будет работать, потому что в то время опция skip-pasv-ip не существовала, и это было абсолютно необходимо. Что-то вроде:
curl --user <username:password> --disable-epsv --ftp-pasv --ftp-skip-pasv-ip --ftp-ssl --sslv2 --cert <path/to/certificate> -T <path/to/uploadfile> <hostname>
Возможно, вам потребуется изменить параметры завитка в соответствии с вашими потребностями.
Возможно, вы могли бы использовать ftp_ssl_соединение если на то пошло, который используется для открытия безопасного SSL-FTP-соединения, а загрузка файла - это просто прямой процесс, просто создайте соединение с сервером и поместите файл туда. Основным примером может быть:
//Create your connection
$ftp_conn = ftp_ssl_connect( $host, $you_can_provide_a_port );
//Login
$login_result = ftp_login($ftp_conn, $user, $pass);
if( $login_result )
{
//Set passive mode
ftp_pasv( $ftp_conn, true );
// Transfer file
$transfer_result = ftp_put( $ftp_conn, $dest_file_path, $source_file_path, FTP_BINARY );
//Verify if transfer was successfully made
if( $transfer_result)
{
echo "Success";
}
else
{
echo "An error occured";
}
}
Для справочных целей http://www.php.net/manual/en/function.ftp-ssl-connect.php