FTP SSL Upload

Hallo,

ich möchte eine Textdatei über FTP SSL vom IPS-Server an einen Webserver schicken. Hat sowas schonmal jemand gemacht?

Das wäre mein Ansatz


  $username = 'xxx';
    $password = 'xxx';
    $url = 'xxx.xxx.xxx';
    $ftp_server = "ftp://" . $username . ":" . $password . "@" . $url;

	 $localfile="Upload_HOME/IPS_DATA.txt";
	 
	 $fp = fopen($localfile, 'r');
	 
    echo "Starting CURL.
";
    $ch = curl_init();
    echo "Set CURL URL.
";

    //curl FTP
    curl_setopt($ch, CURLOPT_URL, $ftp_server);
    

    //For Debugging
    curl_setopt($ch, CURLOPT_VERBOSE, TRUE);
    
      //SSL Settings
    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_URL, $ftp_server);
  //curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  //curl_setopt($ch, CURLOPT_UPLOAD, 1);
  //curl_setopt($ch, CURLOPT_INFILE, $fp);
  //curl_setopt($ch, CURLOPT_INFILESIZE, filesize($localfile));

    $result = curl_exec($ch);

    $info = curl_getinfo ($ch);

    curl_close($ch);

    print_R($info);


eine Textdatei die ich auf dem Webserver habe kann ich schon mal lesen. Also das Script gibt mir zuminderstens den Namen der Datei aus.

Im Netz habe ich noch diese Classe gefunden. Nur weis ich nicht wie ich die Parameter übergeben muß.

https://gist.github.com/maxrice/4544344

Hi,

vielleicht hilft dir ein Auszug aus meinem Script.
Aktuell nutze ich jedoch noch ftp statt sftp. Um das zu ändern müsstest du den entweder probieren oder statt ftp_* ssh2_* verwenden.

<?
$filepath = "C://tmp//file_to_upload.txt";
$ftpserver = "ftp.domain.de";
$user = "user123";
$password = "password1234";


//start ftp upload
	//ftp_connect ( string $host [, int $port = 21 [, int $timeout = 90 ]] )
	$connection = ftp_connect($ftpserver, 21, 60);
	$login_result = ftp_login($connection, $user, $password);
	// 1=Login OK
	//echo $login_result;
	if (!$connection || !$login_result)
	{
	 //Wenn Fehler
	 echo "Error: creating FTP connection failed";
	}
	else{
	   //entering passive mode
		//ftp_pasv ( resource $ftp_stream , bool $pasv )
		ftp_pasv($connection, true);
		$remotefile = 'remotefilename.txt';
		$upload = ftp_put($connection, $remotefile, $filepath, FTP_ASCII);
		//$upload = ftp_put($connection, $remotefile, $filepath, FTP_BINARY);
		if (!$upload)
		{
		 	 //Wenn Fehler
			 echo "Error: FTP upload failed";
		}
		else
		{
		   echo "Upload succesful!";
		}
	}
	ftp_quit($connection);
?>

Hilfe zu ftp_* findest du hier
Hilfe zu ssh2_* findest du hier

Hallo,

wie geht ein Dateiupload über „FTP Upload Explizit über TLS/SSL“ aktuell am besten ?

Meine Stichworte bisher dazu:

  • mit „copy“
  • mit „ftp_ssl_connect“ (Funktion wird jedoch anscheinend standardmäßig nicht in IPSymcon gefunden)
  • mit „CURL…“

Bitte um einen Tipp.

Gruß
zkra

Hallo,

nochmals nach oben …
… keiner einen Tipp ?

Gruß
zkra