FTP file upload example

Shows how to upload a single file to a FTP server.

Snippet information

Author:
Jonas John

License:
Public Domain

Language:
PHP

Created:
06/13/2006

Updated:
06/13/2006

Tags:
, , ,


// FTP access parameters
$host = 'ftp.example.org';
$usr = 'example_user';
$pwd = 'example_password';
 
// file to move:
$local_file = './example.txt';
$ftp_path = '/data/example.txt';
 
// connect to FTP server (port 21)
$conn_id = ftp_connect($host, 21) or die ("Cannot connect to host");
 
// send access parameters
ftp_login($conn_id, $usr, $pwd) or die("Cannot login");
 
// turn on passive mode transfers (some servers need this)
// ftp_pasv ($conn_id, true);
 
// perform file upload
$upload = ftp_put($conn_id, $ftp_path, $local_file, FTP_ASCII);
 
// check upload status:
print (!$upload) ? 'Cannot upload' : 'Upload complete';
print "\n";
 
/*
** Chmod the file (just as example)
*/
 
// If you are using PHP4 then you need to use this code:
// (because the "ftp_chmod" command is just available in PHP5+)
if (!function_exists('ftp_chmod')) {
   function ftp_chmod($ftp_stream, $mode, $filename){
        return ftp_site($ftp_stream, sprintf('CHMOD %o %s', $mode, $filename));
   }
}
 
// try to chmod the new file to 666 (writeable)
if (ftp_chmod($conn_id, 0666, $ftp_path) !== false) {
    print $ftp_path . " chmoded successfully to 666\n";
} else {
    print "could not chmod $file\n";
}
 
// close the FTP stream
ftp_close($conn_id);


Found a bug? Or do you have a better solution for this?
Feel free to leave a message:

Add a comment


Leave a comment

karfes December 09, 2009 at 09:27
i need this for an upload from a html form.please assist on how i can use a form and get the filename from the form's file input.
Ashutosh September 05, 2008 at 11:42
Hey you saved my life
thanks a lot Man .......and keep posting such greate classes
Jonas August 21, 2007 at 13:19
Hi psydney,

thanks for your help! - I fixed the little bugs...
psydney August 21, 2007 at 05:27
Note: I wasn't expecting the backslashes in my comment. Omit those in my previous comment.
psydney August 21, 2007 at 05:25
I found a syntactic omission with this line:

print (!$upload) 'Cannot upload' : 'Upload complete';

The ternary operator (?) is missing.

It should read:
print (!$upload) ? 'Cannot upload' : 'Upload complete';