php:implicit_ftps
Table of Contents
FTPS
Implicit FTPS
The code below contains examples to upload, download and delete files on an implicit FTPS server and to get a directory listing:
<?php //upload test $server="servername"; $user="username"; $pass="password"; $remotefilename="/InBound/test.txt"; $localfilename="test.txt"; /* $fp = fopen($localfilename, 'r'); $ftp_server = 'ftps://'.$server.'/'.$remotefilename; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $ftp_server); curl_setopt($ch, CURLOPT_USERPWD,$user.':'.$pass); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); curl_setopt($ch, CURLOPT_FTP_SSL, CURLFTPSSL_TRY); curl_setopt($ch, CURLOPT_FTPSSLAUTH, CURLFTPAUTH_TLS); curl_setopt($ch, CURLOPT_UPLOAD, 1); curl_setopt($ch, CURLOPT_INFILE, $fp); $output = curl_exec($ch); $error_no = curl_errno($ch); var_dump(curl_error($ch)); curl_close($ch); */ /* //download test $remotefilename="/OutBound/test.txt"; $localfilename="testdown.txt"; $fp = fopen($localfilename, 'w'); $ftp_server = 'ftps://'.$server.'/'.$remotefilename; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $ftp_server); curl_setopt($ch, CURLOPT_USERPWD,$user.':'.$pass); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); curl_setopt($ch, CURLOPT_FTP_SSL, CURLFTPSSL_TRY); curl_setopt($ch, CURLOPT_FTPSSLAUTH, CURLFTPAUTH_TLS); curl_setopt($ch, CURLOPT_UPLOAD, 0); curl_setopt($ch, CURLOPT_FILE, $fp); $output = curl_exec($ch); $error_no = curl_errno($ch); var_dump(curl_error($ch)); curl_close($ch); */ //Diretory Listing test $remotepath="/OutBound/"; $ftp_server = 'ftps://'.$server.'/'.$remotepath; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $ftp_server); curl_setopt($ch, CURLOPT_USERPWD,$user.':'.$pass); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); curl_setopt($ch, CURLOPT_FTP_SSL, CURLFTPSSL_TRY); curl_setopt($ch, CURLOPT_FTPSSLAUTH, CURLFTPAUTH_TLS); curl_setopt($ch, CURLOPT_FTPLISTONLY, true); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $output = curl_exec($ch); //create array from directory listing $output = preg_split("/\r\n|\n|\r/", $output, null, PREG_SPLIT_NO_EMPTY); $error_no = curl_errno($ch); #var_dump(curl_error($ch)); var_dump($output); curl_close($ch); /* //Delete file test $remotepath="/InBound/"; $remotefile="test2.txt"; $ftp_server = 'ftps://'.$server.'/'.$remotepath; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $ftp_server); curl_setopt($ch, CURLOPT_USERPWD,$user.':'.$pass); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); curl_setopt($ch, CURLOPT_FTP_SSL, CURLFTPSSL_TRY); curl_setopt($ch, CURLOPT_FTPSSLAUTH, CURLFTPAUTH_TLS); curl_setopt($ch, CURLOPT_QUOTE, array("DELE $remotepath$remotefile")); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $output = curl_exec($ch); $error_no = curl_errno($ch); #var_dump(curl_error($ch)); var_dump($output); curl_close($ch); */
Explicit FTPS
The code below contains example of directory listing of an explicit FTPS server - the normal PHP FTP functions can be used:
<?php $ftp_server="server"; $ftp_port="990"; $ftp_user_name="username"; $ftp_user_pass="password"; // set up basic ssl connection $conn_id = ftp_ssl_connect($ftp_server,$ftp_port); if(!$conn_id) { //could not connect die("can't connect to $ftp_server on port $ftp_port\n"); } // login with username and password $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass); if (!$login_result) { // PHP will already have raised an E_WARNING level message in this case die("can't login\n"); } echo ftp_pwd($conn_id); // / // get contents of the current directory $contents = ftp_nlist($conn_id, "."); // output $contents var_dump($contents); // close the ssl connection ftp_close($conn_id);
php/implicit_ftps.txt · Last modified: 2023/05/29 11:55 by 127.0.0.1