Use curl with find to recursively upload all files from a specific directory:
curl
find
find mydir -type f -exec curl -u xxx:psw --ftp-create-dirs -T {} ftp://192.168.1.158/public/demon_test/{} \;
instead of curl, use wput (not to be confused with wget).