Justin has written up a quick look at a FTP server that's been written entirely in PHP - nanoFTP.
nanoFTPd is an ftp daemon written in php. as of version 4.2.0, php supports the command-line interface (stable since 4.3.0), which nanoFTPd relies on. nanoFTPd is modular, so it’s easy to add custom modules and other stuff, like different database interfaces (currently supports mysql and postgresql).
The server allows for a lot of the usual FTP functionality - uploads, downloads, user authentication, logging, etc. It works with PHP 4.2 and above and is pretty simple to install.