Как отправить файл по защищенному протоколу FTP SSL - PullRequest
3 голосов
/ 17 мая 2010

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

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

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

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

Спасибо!

Ответы [ 2 ]

6 голосов
/ 17 мая 2010

Возможно, вы могли бы использовать ftp_ssl_connect в этом отношении, который используется для открытия безопасного соединения 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

2 голосов
/ 17 мая 2010

Единственный способ, которым мне удалось сделать 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>

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

...