FTP file upload example
Shows how to upload a single file to a FTP server.
// 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);
Snippet Details
-
AuthorJonas John
-
LicensePublic Domain
-
LanguagePHP
-
Created06/13/2006
-
Updated06/13/2006
-
Tagsfile functions, network, connections, ftp
Sorry folks, comments have been deactivated for now due to the large amount of spam.
Please try to post your questions or problems on a related programming board, a suitable mailing list, a programming chat-room,
or use a QA website like stackoverflow because I'm usually too busy to answer any mails related
to my code snippets. Therefore please just mail me if you found a serious bug... Thank you!
Older comments:
SDADS July 10, 2011 at 21:10
ASDASD
Johnny McNeil July 03, 2011 at 06:00
Will this work if I'm uploading to an online web host?
lvera May 18, 2011 at 16:03
Nice tutorial thanks for this contribution!!
vijay May 11, 2011 at 08:43
i need help to upload a file (Mac Font without extension) Using PHP to server(Linux). Thanks in advance
Arun May 11, 2011 at 08:22
very useful. thanks
piyush April 15, 2011 at 12:39
Thats fiine
jagat singh April 13, 2011 at 13:10
good post
Tushar a Maheta March 23, 2011 at 07:21
Awesome.....
Malkesh Sondagar March 11, 2011 at 06:47
Thanks Thia is a great post which i have ever seen. All the Best for future post.
agaro0ob February 02, 2011 at 11:33
go0od
Mark December 07, 2010 at 14:11
Solution for bigger files:
ini_set("max_execution_time", 3000); // execution time must be bigger for larger files
change transfer mode from FTP_ASCII (works for txt files) to FTP_BINARY (for any other files - I don't know why yet, but it works)
ini_set("max_execution_time", 3000); // execution time must be bigger for larger files
change transfer mode from FTP_ASCII (works for txt files) to FTP_BINARY (for any other files - I don't know why yet, but it works)
Mark December 07, 2010 at 13:57
I have a zip file about 2.5 mb I tried to upload it with this script to different servers it uploads only 263 kb - file is corrupted. Anybody has a solution for this?
Abhishek March 24, 2010 at 08:59
Thank you for this useful data.
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
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...
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';
print (!$upload) 'Cannot upload' : 'Upload complete';
The ternary operator (?) is missing.
It should read:
print (!$upload) ? 'Cannot upload' : 'Upload complete';