#!/usr/bin/perl use strict; use warnings; use CGI; use Net::FTP; use Expect; my $query = new CGI; my ( $template_type, $logged_in, $cookie ) = get_template( { template_name => "uploadbackup.tmpl", query => $query, type => "locked", permission => { allowed_upload => '*' }, debug => 1, } ); my $query = new CGI; my $server_ip = $query->param('server_ip'); my $server_user = $query->param('server_user'); my $server_pass = $query->param('server_pass'); my $os = $query->param('os'); my $file_to_upload = $query->param('file_to_upload'); # Check the Offsite server input boxes have been filled if( (length($server_ip)==0) || (length($server_user) ==0) || (length($server_pass) == 0) ) {my $invalid_server_ip = "Nope - you need to fill all the boxes!."; $template_type->param('invalid_server_ip' => $invalid_server_ip); } else { my $ftp_message = upload_file($server_ip,$server_user,$server_pass,$file_to_upload,$os); $template_type->param('file_to_upload' => $file_to_upload, 'ftp_message' => $ftp_message ); } output_html_with_http_headers $query, $cookie, $template_type->output; sub upload_file { my $login_failed_message = "Login Failed. Please check your username and/or password"; my $ftp_message; my $os = $_[4]; my $ftp = Net::FTP->new($_[0], Debug => 1) or die "Cannot connect to $_[0]"; $ftp->login($_[1],$_[2]) or die $login_failed_message; if($os eq "1") { $ftp->binary(); } $ftp->put($_[3]) or die "get failed ", $ftp->message; $ftp->quit; return $ftp_message; }