wput: Upload to FTP subdirectory

Uploading a file via wget to a FTP subdirectory without mentioning the absolute path didn’t work.

$f = /home/my/files/image.jpg
wput -B -v –basename=/home/my/files $f ftp://user:password@192.168.0.222/images/

Logging in as user … Logged in!
==> CWD images/
==> TYPE I … done.
==> SIZE /image.jpg … failed.
==> PASV … done.
==> STOR /image.jpg … Send Failed (/image.jpg: Permission denied.) Skipping this file

It seems wput needs the absolute path name on the FTP server.

ftp://user:password@192.168.0.222/images/image.jpg

basename does the trick. It strips the path from the passed absolute url.

$f = /home/my/files/image.jpg
wput -B -v –basename=/home/my/files $f ftp://user:password@192.168.0.222/images/$(basename $f)