2010-05-17 220 views
3

我很感激任何可以提供的主题帮助。在线注册结束时,我将客户数据(多个字段),放入CSV文件并尝试通过SSL协议提交给另一客户端,但不知道如何完成此操作。我也将这些信息存储在本地数据库中,并希望这个过程有点类似。如何通过安全的FTP SSL协议发送文件

我已经发环节,从php.net SSN2

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

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

谢谢!

+0

那么,你有兴趣使用sftp或FTP-ssl? – WhirlWind 2010-05-17 18:11:52

+0

@WhirlWind - 我们的客户端设置了以下内容:在FTP服务器上创建安全FTP帐户并在防火墙上打开端口990以进行SSL连接。我还为FTP协议创建了一个新的证书请求,并选择了1028位SSL安全证书。 – JM4 2010-05-17 18:18:35

+0

可能找到FTPS的一些说明,而不是SSH的东西,因为这听起来像“客户”想要的。 – WhirlWind 2010-05-17 18:22:27

回答

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> 

您可能需要修改卷曲选项以适合您的需要。

+0

感谢您的意见。我对Curl并不熟悉,但我会给这个镜头,让你知道它是如何发生的! – JM4 2010-05-17 22:57:39

+0

@ JM4 - 也想指出你可能能够使用PHP的curl库。我无法使用它,因为我无法设置ftp-skip-pasv-ip选项 - 它不适用于我使用的PHP版本。如果你不需要这个选项,并且有可用的卷发支持,那么首先要做。 – 2010-05-18 19:11:55

+0

我不知道如何使用上面所述的内联卷曲。我也引用了(http://curl.haxx.se/docs/manual.html),并且它们与您一样内联列出。我看到的所有CURL指令都有多行,并有非常具体的选项。我试图连接到一个主机IP,用给定的用户名和密码,然后转储文件在一个特定的目录。有任何想法吗? – JM4 2010-05-25 20:45:02

5

也许你可以使用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

+0

谢谢你的建议。我会给它一个镜头,让你知道结果! – JM4 2010-05-17 22:57:19

+0

这没有按需要工作。我将客户端$ host作为IP地址,60秒后超时。我知道FTPS的工作原理,因为我能够连接本地FTP客户端 – JM4 2010-05-25 20:43:59

+1

如果上述不起作用。而且连接通过桌面FTP程序工作,你可能有这个问题。 http://www.elitehosts.com/blog/php-ftp-passive-ftp-server-behind-nat-nightmare/ – Tim 2011-12-07 05:40:07