in reply to Confuse and lost in Transfer files process

I tested your code and everything worked just fine. No error no nothing, except the expected. I did this on a Win2000 box, then i also tested this at a Win98 box, and guess what.. i got File Not Found errors. Figures..ehh? :) By the way, works fine on Linux too.
  • Comment on RE: Confuse and lost in Transfer files process

Replies are listed 'Best First'.
RE: RE: Confuse and lost in Transfer files process
by tye (Sage) on Sep 18, 2000 at 19:17 UTC

    Ah, a Win9x "quirk". I'll have to play with that when I get back to my Win9x box.

    So I suggest you add an extra synchronization step. The most reliable I've come up with is something like:

    sub fail { # Allow failures to show on the web page. print @_; exit 0; } $finish = 'transfer'; foreach $wmlfile (@fileftp) { if(-e "$finish/$wmlfile") { unlink "$finish/$wmlfile" or die "Can't delete $finish/$wmlfile: $!\n"; } if(-f $wmlfile) { $ftp_commands = " open $remotehost1 user $remoteuser $remotepass cd $remotepath asc put $wmlfile lcd $finish get $wmlfile bye\n"; open (CMD, "|$cmd") or fail "Can't fork() to run $cmd ($wmlfile): $!\n"; print CMD $ftp_commands or fail "Can't write commands to $cmd ($wmlfile): $!\n"; close (CMD) or fail "$cmd ($wmlfile) failed? ($?): $!\n"; for( 0..100 ) { last if -f "$finish/$wmlfile"; sleep 5; } die "$finish/$wmfile not found!\n" unless -f "$finish/$wmlfile"; print "File $wmlfile has been transferred \n"; print "<br>\n"; } }

            - tye (but my friends call me "Tye")