in reply to copying a file

No success so far.
Have you tried the Debug option? Why not?

Replies are listed 'Best First'.
Re^2: copying a file
by Doyle (Acolyte) on May 20, 2005 at 13:01 UTC
    This is the output I get when I run the script:
    Net::FTP=GLOB(0x1832724)<<< 220 Serv-U FTP Server v6.0 for WinSock rea +dy... Net::FTP=GLOB(0x1832724)>>> user ******* Net::FTP=GLOB(0x1832724)<<< 331 User name okay, need password. Net::FTP=GLOB(0x1832724)>>> PASS .... Net::FTP=GLOB(0x1832724)<<< 230 User logged in, proceed. Net::FTP=GLOB(0x1832724)>>> PORT ***,190,**,17,4,*** Net::FTP=GLOB(0x1832724)<<< 200 PORT Command successful. Net::FTP=GLOB(0x1832724)>>> RETR /doytest/cgi-bin/00000001.610 Net::FTP=GLOB(0x1832724)<<< 150 Opening ASCII mode data connection for + 00000001.610 (6317 Bytes). Cannot open Local file /doytest/cgi-bin/00000001.610: No such file or +directory Net::FTP=GLOB(0x1832724)>>> ňABOR Net::FTP=GLOB(0x1832724)<<< 226-Maximum disk quota limited to 51200 kB +ytes Net::FTP=GLOB(0x1832724)<<< Used disk quota 712 kBytes, available +50487 kBytes Net::FTP=GLOB(0x1832724)<<< 226 Transfer complete. Net::FTP=GLOB(0x1832724)<<< 226 ABOR command successful. Net::FTP=GLOB(0x1832724)>>> QUIT Net::FTP=GLOB(0x1832724)<<< 221 Goodbye!

      Observation: Your file in the debug is "00000001.610", not "00000001.txt".

      Observation: Your host variable contains a the value from a call to 'hostname()'. It looks like this function returns the hostname of the machine the script is being called on. That wouldn't be the machine you want to get your file from, right? You want it from a different server machine.

      -Bryan

      Cannot open Local file /doytest/cgi-bin/00000001.610: No such file or directory
      What do you think that means?
      You stated that you wanted to copy it to c:\ But you do a:
      $ftp->get("$file","/doytest/cgi-bin/Data/Temp/$fileB");
      which give you an error, that it can't find the local file:
      Cannot open Local file /doytest/cgi-bin/00000001.610: No such file or +directory
      So I assume you will have to change the second argument in the get to
      $ftp->get("$file","c:/Temp/$fileB");

      .:| If it can't be fixed .. Don't break it |:.
        Here is the modified code:
        use strict; use warnings; use diagnostics; use Net::FTP; use Sys::Hostname; my $hostname = hostname(); my $file = '00000001.610'; my $fileB = '00000002.610'; my $host = $hostname; my $user = '*******'; my $pass = '*******'; my $dir = '/doytest/cgi-bin/'; my $ftp = Net::FTP->new($host, Debug => 1); $ftp->login($user,$pass); #$ftp->cwd($dir); $ftp->get("$file","c:/Temp/$fileB"); $ftp->quit;
        This is the message I get after running the script;
        Net::FTP=GLOB(0x1832724)<<< 220 Serv-U FTP Server v6.0 for WinSock rea +dy... Net::FTP=GLOB(0x1832724)>>> user jv34n Net::FTP=GLOB(0x1832724)<<< 331 User name okay, need password. Net::FTP=GLOB(0x1832724)>>> PASS .... Net::FTP=GLOB(0x1832724)<<< 230 User logged in, proceed. Net::FTP=GLOB(0x1832724)>>> PORT 206,190,91,17,16,118 Net::FTP=GLOB(0x1832724)<<< 200 PORT Command successful. Net::FTP=GLOB(0x1832724)>>> RETR 00000001.610 Net::FTP=GLOB(0x1832724)<<< 150 Opening ASCII mode data connection for + 00000001.610 (6317 Bytes). Net::FTP=GLOB(0x1832724)<<< 226-Maximum disk quota limited to 51200 kB +ytes Net::FTP=GLOB(0x1832724)<<< Used disk quota 613 kBytes, available +50586 kBytes Net::FTP=GLOB(0x1832724)<<< 226 Transfer complete. Net::FTP=GLOB(0x1832724)>>> QUIT Net::FTP=GLOB(0x1832724)<<< 221 Goodbye!
        But when I look in my C:/Temp folder on my pc, the file isn't there.