如何通过安全的FTP SSL协议发送文件

时间:2010-05-17 18:09:40

标签: php ssl ssh sftp protocols

我感谢您就此主题提供的任何帮助。在线注册结束时,我正在获取客户数据(几个字段),将它们放入CSV文件并尝试通过SSL协议提交给另一个客户端,但不知道如何完成。我也将信息存储在本地数据库中,并希望这个过程有点类似。

我已经发送了链接,可以从php.net SSN2

查看SSH2说明 但是说实话这就像给我读中文。我不明白这些说明,我不打算安装任何扩展,修改PHP.ini文件或任何类型(特别是因为我们没有通过服务器发送信息)。

是否有一种简单,安全的方式将此文件传输到提供给我们的SSL协议?

谢谢!

2 个答案:

答案 0 :(得分:6)

也许您可以使用 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";
    }
}

供参考[{3}}

答案 1 :(得分:2)

我使用php设法通过SSL进行ftp的唯一方法是使用php的exec()函数来执行curl命令。 PHP的curl库不起作用,因为当时,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>

您可能需要修改卷曲选项以满足您的需求。