Как отправить файл по защищенному протоколу FTP SSL


Я ценю любую помощь, которую можно предложить по этому вопросу. В конце онлайн-регистрации я беру данные клиента (несколько полей), помещаю их в файл CSV и пытаюсь отправить другому клиенту по протоколу SSL, но понятия не имею, как это делается. Я также храню информацию в локальной базе данных и надеюсь, что процесс в чем-то похож.

Мне уже были отправлены ссылки для просмотра инструкций SSH2 из php.net SSN2SSN2

Но быть честно говоря, для меня это все равно что читать по-китайски. Я не понимаю инструкций и не собираюсь устанавливать какие-либо расширения, изменять файл PHP.ini или что-либо в этом роде (тем более, что мы не владеем сервером, через который передается информация).

Существует ли простой и безопасный способ передачи этого файла по предоставленному нам протоколу SSL?

Спасибо!

Author: JM4, 2010-05-17

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>

Возможно, вам потребуется изменить параметры завитка в соответствии с вашими потребностями.

 2
Author: Rob Apodaca, 2010-05-17 19:00:05

Возможно, вы могли бы использовать 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

 6
Author: falomir, 2010-05-17 18:45:01