Re: copying a file
by aukjan (Friar) on May 20, 2005 at 12:32 UTC
|
why do you want to copy a local file by using ftp?
And I assume you noticed that your are missing a '/' in
$ftp->get("$file","/doytest/cgi-bin/Data/Temp$fileB");
should be:
$ftp->get("$file","/doytest/cgi-bin/Data/Temp/$fileB");
.:| If it can't be fixed .. Don't break it |:.
| [reply] [d/l] |
Re: copying a file
by Joost (Canon) on May 20, 2005 at 12:32 UTC
|
I'm not sure what your code has to do with your stated goal.
use File::Copy;
copy("/doytest/cgi-bin/Data/00000001.txt" => "/doytest/cgi-bin/Data/Te
+mp/00000001.txt");
| [reply] [d/l] |
Re: copying a file
by monkey_boy (Priest) on May 20, 2005 at 12:32 UTC
|
$ftp->get("$file","/doytest/cgi-bin/Data/Temp$fileB");
be changed to :
$ftp->get("$file","/doytest/cgi-bin/Data/Temp/$fileB");
This is not a Signature...
| [reply] [d/l] [select] |
Re: copying a file
by mrborisguy (Hermit) on May 20, 2005 at 12:38 UTC
|
Is there a reason you are trying to do this with FTP? You are using File::Copy, so why not just use copy( $dir.$file, $dir."Temp/".$file )? (You would have to change $dir to be relative to your root then, something like "/home/doytest/cgi-bin/Data" or however you have your system set up.
If you are intent on doing it with FTP, then we'll have to figure something else out.
-Bryan
| [reply] [d/l] |
|
|
Correction was made on the path and thanks for pointing that out. The file I want to copy is on an ftp server(/doytest/cgi-bin/00000001.txt) and I would like to copy this file to my pc(C:/Temp). This is want I am trying to do. If there is any other way, I am all ears.
| [reply] |
Re: copying a file
by Anonymous Monk on May 20, 2005 at 12:49 UTC
|
No success so far.
Have you tried the Debug option? Why not?
| [reply] |
|
|
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!
| [reply] [d/l] |
|
|
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
| [reply] |
|
|
Cannot open Local file /doytest/cgi-bin/00000001.610: No such file or directory
What do you think that means?
| [reply] |
|
|
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 |:.
| [reply] [d/l] [select] |
|
|
|
|
|
|