Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations Chriss Miller on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Using LWP to automate file upload

Status
Not open for further replies.

cdlvj

MIS
Nov 18, 2003
678
US
have a https site to upload files, and I want to automate the process.

Code:
my $url = "https:\/\/acct:pass\@ftp.mydomain.com/cgi-bin/upload.pl";
my $ua = LWP::UserAgent->new;
$ua->agent("MyApp/0.1 ");
my $file="c:\\filetoupload.txt"; 
$res = $ua->post($url,
         [ "ac" => 'upload',
           "file" => "$file"
         ]
     ); 
print $res->content, "\n";

IIS script upload.pl snippet

Code:
  ## open of the file on server
  open(FILE,">$upload_dir/$file_name") || &Error("Error opening file $file_name for writing, error $!", 1);
    binmode FILE;
    
    $time=time();
    while (1)
    {
    ### fails here return code is space.
    [B]$bytes_count = read($file_query,$buff,2096);[/B]
	if ($bytes_count == 0)
	{
		 last;
	 }
 
Question is how can the server read without a file handle?

What am I missing on the client size. I suspect that the browser is passing the stream to the server somehow.

 
Have you looked at cgi.pm or cgi-lib.pl on how to upload files?
 
This does it. by putting the filename into an array.

Code:
my $ua = LWP::UserAgent->new;
$ua->agent("MyApp/0.1 ");
$res = $ua->post($url,
                 Content_Type => 'form-data',
                 Content      => [ "ac" => 'upload',
                                   "file" => [ "$FILE" ],
                                 ]
     ); 
print $res->content, "\n";
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top