2010-05-17 4 views
3

이 주제에 대해 도움을 주셔서 감사합니다. 온라인 등록이 끝나면 고객 데이터 (여러 필드)를 CSV 파일에 저장하고 SSL 프로토콜을 통해 다른 클라이언트에 제출하려고하지만 어떻게 수행되는지는 잘 모릅니다. 또한 로컬 데이터베이스에 정보를 저장하고 프로세스가 다소 유사하길 바라고 있습니다.안전한 FTP SSL 프로토콜을 통해 파일을 보내는 방법

이미

php.net SSN2에서 SSH2 지침을 볼 수 있지만이 나에게 중국어를 읽고처럼 정직에 대한 링크를 보냈습니다. 필자는 지침을 이해하지 못하고 확장 프로그램을 설치하지 않고 PHP.ini 파일이나 그 밖의 모든 것을 수정하려고하지 않습니다. (특히 우리는 정보가 전달되는 서버를 소유하지 않기 때문에).

이 파일을 우리에게 제공된 SSL 프로토콜로 전송하는 간단하고 안전한 방법이 있습니까?

감사합니다.

+0

그래서 sftp 또는 FTP-ssl을 사용하고 싶습니까? – WhirlWind

+0

@WhirlWind - 클라이언트가 다음을 설정합니다. FTP 서버에서 SSL 연결을 위해 보안 FTP 계정을 만들고 방화벽에서 포트 990을 열었습니다. 또한 FTP 프로토콜에 대한 새 인증서 요청을 만들고 1028 비트 SSL 보안 인증서를 선택합니다. – JM4

+0

아마도 "클라이언트"가 원하는 것처럼 들리므로 SSH 항목 대신 FTPS에 대한 지침을 찾으십시오. – WhirlWind

답변

2

내가 PHP를 사용하여 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"; 
    } 
} 

curl 명령을 실행하기 위해 PHP의 간부 인() 함수를 사용하는 것이 었습니다. PHP의 컬 라이브러리 (curl library)는 그 당시에는 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

+0

@ JM4 - 또한 PHP의 컬 라이브러리를 사용할 수 있음을 지적하고 싶습니다. ftp-skip-pasv-ip 옵션을 설정할 수 없기 때문에 사용할 수 없었습니다. 사용하고 있던 PHP 버전에서는 사용할 수 없었습니다. 해당 옵션이 필요하지 않고 컬 지원을 사용할 수있는 경우 먼저 사용하십시오. –

+0

위와 같이 말하면서 컬 인라인을 사용하는 방법을 모르겠습니다.나는 또한 (http://curl.haxx.se/docs/manual.html)을 참조했으며 여러분이했던 것처럼 인라인으로 나열한다. 필자가 보았던 모든 CURL 명령은 매우 특정한 옵션을 가진 여러 행입니다. 주어진 사용자 이름과 암호를 사용하여 호스트 IP에 연결하고 특정 디렉토리에 파일을 덤프하려고합니다. 어떤 아이디어? – JM4

5

아마 당신은 안전한 SSL-FTP 연결을 여는 데 사용되는 그 문제에 대한 ftp_ssl_connect를 사용할 수 있으며, 단지 서버와의 연결을 생성, 파일 그냥 정직 과정 업로드하고, 거기에 파일을 올려 놓으십시오. 기본적인 예는 수 : 참조 용으로 http://www.php.net/manual/en/function.ftp-ssl-connect.php

+0

조언에 감사드립니다. 나는 그 결과를 알려주고 그 결과를 알려 줄 것이다! – JM4

+0

이것은 필요에 따라 작동하지 않았습니다. 클라이언트 $ 호스트에 IP 주소를 부여하고 60 초 후에 만 ​​시간이 초과됩니다. 로컬 FTP 클라이언트 – JM4

+1

에 연결할 수 있기 때문에 FTPS가 작동하는 것을 압니다. 위의 방법이 작동하지 않으면. 그리고 연결은 아마이 문제가있는 데스크탑 FTP 프로그램을 통해 작동합니다. http://www.elitehosts.com/blog/php-ftp-passive-ftp-server-behind-nat-nightmare/ – Tim

관련 문제