PHP Connection and File Handling on FTP Server

In this article, you will learn how to connect to FTP server and handling file over it using PHP.

Handling file on the server is a very common task for developers. There are many file manager software are available. But without using these software, we can do the file management on the server using PHP. PHP provides lots of inbuilt functions to handle FTP connection.



PHP FTP Functions

In this article, we are using the following PHP inbuilt FTP functions to manage files on the server -

  • ftp_connect - Connect to FTP connection.
  • ftp_login - Login to FTP Server.
  • file_exists - Check existence of file.
  • filemtime - Last file modification time.
  • ftp_mdtm - Unix timestamp of last file modification time.
  • fopen - Open the file.
  • ftp_fget - Download the file from FTP server.
  • ftp_quit - Close an FTP connection.
  • fclose - Close an open file.




PHP Connect and Login to FTP Server

First of all, we need to connect to FTP server. In this given code, we have used ftp_connect() method to FTP server. After connection, we have login to server using ftp_login() function and providing connection object, username and password.

<?php
$host = 'hostname';
$user = 'ftp username';
$password = 'ftp password';
$remotefile = 'remotefilename';
$localfile = 'localfilename';
// Connect to host
$conn = ftp_connect($host);
if(!$conn) {
	echo 'Error: could not connect to ftp server';
	exit;
}

echo 'Connected to '.$host.'
'; $result = ftp_login($conn, $user, $password); if(!$result){ echo "Error: could not log on as ".$user; ftp_quit($conn); exit; } echo "logged in as ".$user; ?>


PHP Upload File to FTP Server

Once the connection and login established, we can perform file handling process. In the given code, we have uploaded file to the FTP server using ftp_put() function.

<?php
$host = 'hostname';
$user = 'ftp username';
$password = 'ftp password';
$remotefile = 'remotefilename';
$localfile = 'localfilename';
// Connect to host
$conn = ftp_connect($host);
if(!$conn) {
	echo 'Error: could not connect to ftp server';
	exit;
}

echo 'Connected to '.$host.'
'; $result = ftp_login($conn, $user, $password); if(!$result){ echo "Error: could not log on as ".$user; ftp_quit($conn); exit; } $localFile = 'index.php'; $remoteFile = 'public_html/index.php'; // try to upload file if(ftp_put($conn, $remoteFile, $localFile, FTP_ASCII)){ echo "File transfer successful - $localFile"; }else{ echo "There was an error while uploading $localFile"; } // close the connection ftp_close($conn); ?>


PHP Last File Uploaded Time on FTP

In this given example, we have checked the last uploaded file time on the FTP server.

<?php
$host = 'hostname';
$user = 'ftp username';
$password = 'ftp password';
$remotefile = 'remotefilename';
$localfile = 'localfilename';
// Connect to host
$conn = ftp_connect($host);
if(!$conn) {
	echo 'Error: could not connect to ftp server';
	exit;
}

echo 'Connected to '.$host.'
'; $result = ftp_login($conn, $user, $password); if(!$result){ echo "Error: could not log on as ".$user; ftp_quit($conn); exit; } echo "logged in as ".$user; // Check file echo "Checking file time"; $localtime = 0; $remotetime = ftp_mdtm($conn, $remotefile); if(!($remotetime >= 0)) { echo "Cann't accesss remote file time"; $remotetime = $localtime + 1; } else { echo 'Remote file last updated'; echo date('G:i j-M-Y', $remotetime); echo '
'; } ?>


PHP Download File from FTP Server

In the given example, we have downloaded file from the server using ftp_fget() method.

<?php
$host = 'hostname';
$user = 'ftp username';
$password = 'ftp password';
$remotefile = 'remotefilename';
$localfile = 'localfilename';
// Connect to host
$conn = ftp_connect($host);
if(!$conn) {
	echo 'Error: could not connect to ftp server';
	exit;
}

echo 'Connected to '.$host.'
'; $result = ftp_login($conn, $user, $password); if(!$result){ echo "Error: could not log on as ".$user; ftp_quit($conn); exit; } echo "logged in as ".$user; echo 'Getting file from server'; $fp = fopen($localfile, 'w'); if(!$success = ftp_fget($conn, $fp, $remotefile, FTP_BINARY)){ echo 'Could not download file'; ftp_quit($conn); exit; } fclose($fp); echo 'file downloaded successfully'; //close connection ftp_quit($conn); ?>




Related Articles

How to display PDF file in PHP from database
How to read CSV file in PHP and store in MySQL
Create And Download Word Document in PHP
PHP SplFileObject Standard Library
Simple File Upload Script in PHP
Sending form data to an email using PHP
Recover forgot password using PHP and MySQL
Php file based authentication
Simple PHP File Cache
How to get current directory, filename and code line number in PHP




Read more articles


General Knowledge



Learn Popular Language