Are you trying to download and save the file or display it?

If you are trying to display it make sure you have the proper Content-type: image/gif 
header before any other output.

If you are trying to download it then try Net:FTP, much sexier for file tranfers.

Dan

> 
> 
> I'm trying to write a script that will open a socket 
> connection to a website and return a gif.  I got it working 
> to the point where and send the request and receive the 
> response, I was able to remove the HTTP headers the only 
> problem is that the GIF wont display properly.  I downloaded 
> the gif via my browser and compared the files and the are 
> identical.  Does it have something to do with the file to 
> being binary or something because I tried to set the mode to 
> raw and that had no effect.  Any help would be appreciated.  
> Code Below:
>  
> #!/usr/bin/perl -w
>  
>  
>  
> use strict;
>  
> use IO::Socket::INET;
> use open IN => ":raw", OUT => ":raw";
>  
> #Local variable declarations
> my $socket;
> my $request;
> my $symbol; 
> my $chart;
> my $time = 8;
> my $freq = 1;
>  
> foreach $symbol (@ARGV) 
> {
>             #request string
>             $request = "GET 
> /bc3/quickchart/chart.asp?symb=".$symbol."&compidx=aaaaa%3A0&m
> a=0&maval=
> 9&uf=0&lf=1&lf2=0&lf3=0&";
>             $request = $request."&size=2&state=8&sid=1414&style=320";
>             $request = 
> $request."&time=".$time."&freq=".$freq."&nosettings=1&rand=300
> &mocktick=
> 1&rand=1796 HTTP/1.0\n\n";            
>             
>             #open socket and out file
>             $socket = IO::Socket::INET->new("chart.bigcharts.com:80");
>             open(CHARTFILE, ">".$symbol.".gif");
>             
>             # send the request
>             print $socket $request;
>             
>             #debug print
>             print $request;
>             
>             #read from the socket and stuff into the chart scalar
>  
>             while (<$socket>)
>             {
>                         $chart = $chart.$_;
>             }
>             
>             #take off the header
>             $chart = substr($chart, index($chart, "private"));
>             $chart = substr($chart, index($chart, "\n"));
>             $chart = substr($chart, 2);
>  
>             #print the gif to a local file
>             print CHARTFILE $chart;
>  
>             #close the socket
>             close($socket);
>  
>             # reset the chart scalar
>             $chart = "";
> }
>  
> exit;
>  
> Thanks,
>  
> Shawn Bower
>  
> Advent Designs
> [EMAIL PROTECTED]
> TEL: 607-937-5081
> FAX: 607-9375081
> www.advws.net
>  
> 

--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to