in reply to Copy folder into non-existent folder on ftp server.

So this is what I did:

if ($up_dir_local && $up_dir_remote) { print "Preparing to upload folder $up_dir_local to $up_dir_remote \n"; sleep 3; if ($sftp->mkpath($up_dir_remote)){ if ($sftp->rput($up_dir_local, $up_dir_remote)){ print "The directory \"$up_dir_local\" was uploaded to \"$up_dir_remot +e\""; } else { print "\"$up_dir_local\" or \"$up_dir_remote\" could not be found. Che +ck your path!"; } } }

And this works for copying folders where the mkpath command creates a folder before the rput command copies it. But this does not work for copying files because the mkpath command creates a folder with the files name where it places the file. My question now is how would I modify the mkpath command to ignore everything after the last '/' so that it doesn't create a folder with the files name.

Replies are listed 'Best First'.
Re^2: Copy folder into non-existent folder on ftp server.
by BrowserUk (Patriarch) on Aug 10, 2012 at 13:00 UTC

    It would almost certainly be easier and quicker to tar/zip the directories; upload the archive and untar/zip it at the other end.


    With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
    Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
    "Science is about questioning the status quo. Questioning authority".
    In the absence of evidence, opinion is indistinguishable from prejudice.

    The start of some sanity?

      How would that be easier? I honestly don't know :D Isn't it simpler to just copy the file?

      This is the workaround I made for my problem but its not great seeing as the user has to input one more command

      if ($upload_local && $upload_remote && $up_dir) { print "Preparing to upload file $upload_local to $upload_remote \n"; sleep 3; if ($sftp->mkpath($up_dir)){ if ($sftp->put($upload_local, $upload_remote)){ print "The file \"$upload_local\" was uploaded to \"$upload_remote\""; } else { print "\"$upload_local\" or \"$upload_remote\" could not be found. Che +ck your path!"; } } else { print "\"$up_dir\" could not be found. Check your path!"; } }