Wysyłanie plików na serwer FTP w Symfony4

Dziś wyślemy pliki na serwer FTP w Symfony4.
Aby to zrobić skorzystamy z funkcji ftp_connect.

Na samym początku pamiętaj że musisz mieć aktywne rozszerzenie w php:

extension=php_ftp.dll

Jeśli nie wiesz jak dodać to rozszerzenie do php odsyłam Cię do mojego wcześniejszego wpisu:

Następnie potrzebujemy właściwy kod, który to wyśle wybrany przez nas plik z formularza na nasz serwer FTP.

Kod który należy umieścić we funkcji:

if ($request->getMethod() == 'POST')
{
	$home_submit = $request->request->get('home_submit');
	if ($home_submit)
	{
		$info_home = "Wiadomość wysłana!";
		$input_info = $request->request->get('input_name');

		/* Get file info */

			$file_info = $request->request->get('userfile[]');

			echo '<pre>'; echo print_r($_POST); echo '</pre>';
			echo '<pre>'; echo print_r($_FILES); echo '</pre>';		

			for ($i = 0; $i < count($_FILES['userfile']['name']); $i++)
			{
				if (!empty($_FILES['userfile']['name'][$i]))
				{
					$file_tmpName = $_FILES['userfile']['tmp_name'][$i];
					$file_name = $_FILES['userfile']['name'][$i]; 
	   
					$ftp_server = "SERVER_ADDRESS";
					$ftp_user_name = "LOGIN";
					$ftp_user_pass = "PASSWORD";
					$destination_file = "/public_html/test/".$_FILES['userfile']['name'][$i]; // nazwa pliku na serwerze + url do niego
					$source_file = $_FILES['userfile']['tmp_name'][$i]; 

					// set up basic connection
					$conn_id = ftp_connect($ftp_server);
					ftp_pasv($conn_id, true); 

					// login with username and password
					$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass); 

					// check connection
					if ((!$conn_id) || (!$login_result)) { 
							  echo "FTP connection has failed!";
							  echo "Attempted to connect to $ftp_server for user $ftp_user_name"; 
							  exit; 
					} else {
							  echo "Connected to $ftp_server, for user $ftp_user_name";
					}

					// upload the file
					$upload = ftp_put($conn_id, $destination_file, $source_file, FTP_BINARY); 

					// check upload status
					if (!$upload) { 
							  echo "FTP upload has failed!";
					} else {
							  echo "Uploaded $source_file to $ftp_server as $destination_file";
					}
					// close the FTP stream 
					ftp_close($conn_id);
				}
			}


		/* * * * * * * * * * * * * * */

		return $this->render('home/home.html.twig', [
			"info_home" => $info_home
		]);
	} 
	else 
	{
		$info_home = "Wiadomość nie wysłana.";
			
		return $this->render('home/home.html.twig', [
			"info_home" => $info_home,
		]);
	}
}
else
{	
	return $this->render('home/home.html.twig');
}

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *