Recursive uploads (directory + content), as can be done with e.g. ncftp or konqueror, does not work.
ncftp uses relative paths as arguments to STOR when uploading files inside the directory while konqueror(*) uses absolute paths. The function do_stor() cuts any path from the filename and uses the current working directory together with the base name of the file to store it on the server. Therefore any file inside the directory structure will be stored flat in the directory that should contain the directory structure. The directory structure will be created correcty (thanks to MKD accepting complete paths), but will contain no files.
The attached patch fixes this problem.
(*) konqueror sends files as "filename.part" and renames this after the transfer to "filename" which means that the rename functionality needs to be implemented to use konqueror as ftp client.
Patch to accept complete (relative and absolute) paths in STOR (created with cvs diff -u)