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

Php 如何通过安全的FTP SSL协议发送文件,php,ssl,ssh,sftp,protocols,Php,Ssl,Ssh,Sftp,Protocols,我非常感谢在这个问题上能提供的任何帮助。在线注册结束时,我将获取客户数据(几个字段),将它们放入CSV文件中,并尝试通过SSL协议提交给另一个客户机,但不知道这是如何完成的。我还将信息存储在本地数据库中,希望过程与此类似 我已经收到了从php.net查看SSH2指令的链接 但老实说,这就像给我读中文一样。我不理解这些说明,也不打算安装任何扩展、修改PHP.ini文件或任何类似的东西(特别是因为我们不拥有发送信息的服务器) 是否有一种简单、安全的方法将此文件传输到提供给我们的SSL协议 谢谢 也许

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

我已经收到了从php.net查看SSH2指令的链接

但老实说,这就像给我读中文一样。我不理解这些说明,也不打算安装任何扩展、修改PHP.ini文件或任何类似的东西(特别是因为我们不拥有发送信息的服务器)

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


谢谢

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

出于参考目的

我使用php通过SSL实现ftp的唯一方法是使用php的exec()函数执行命令。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>
curl--user--disable epsv--ftp pasv--ftp skip pasv ip--ftp ssl--sslv2--cert-T

您可能需要修改curl选项以满足您的需要。

因此,您对使用sftp或FTP ssl感兴趣?@WhirlWind-我们的客户端设置了以下内容:在防火墙上创建安全FTP帐户并打开端口990,用于FTP服务器上的ssl连接。我还为FTP协议创建了一个新的证书请求,并选择了1028位SSL安全证书。可能会找到一些关于FTPS的说明,而不是SSH的内容,因为这听起来像是“客户端”想要的。@WhirlWind-你认为这就是我需要做的-考虑到这是我问题的主题和我上面问的问题?谢谢你的见解是的,我这样说是因为你似乎把SSH和SSL搞混了。它们是两个不同的东西,你说这是“中国人对你来说”。我没有把它作为一个答案,因为它不是很完整。祝你好运。谢谢你的建议。我会试一试,让你知道结果!这并没有按需要发挥作用。我得到了客户端$host作为IP地址,它在60秒后就会超时。我知道FTPS是有效的,因为如果上述方法不起作用,我可以连接本地FTP客户端。通过桌面FTP程序进行连接,您可能会遇到此问题。谢谢你的建议。我不熟悉卷曲,但我会给这一个镜头,让你知道它的结果@JM4-还想指出,您可能能够使用PHP的curl库。我无法使用它,因为我无法设置ftp skip pasv ip选项-它不适用于我正在使用的PHP版本。如果您不需要该选项,并且有可用的curl支持,请先尝试一下。我不确定如何使用curl inline,正如您在上面指出的那样。我还引用了()并且它们像您一样内联列出。我看到的所有CURL指令都是多行的,带有非常具体的选项。我正在尝试使用给定的用户名和密码连接到主机IP,然后将文件转储到特定目录中。有什么想法吗?