#!/usr/bin/perl use strict ; use warnings ; use CGI ; use Net::FTP; my $cgi = CGI->new(); my $file = $cgi->param( 'upload' ) || ''; do_ftp($file); sub do_ftp { my $filename = @_; return unless $filename ; $cgi->upload( 'upload' ); my $tmp = $cgi->tmpFileName( $filename ) ; rename( $tmp, $filename ) ; chmod 0664, $filename ; my $host = 'xxx'; my $user = 'user'; my $pass = 'pass'; my $ftpdir = '/'; my $ftp = Net::FTP->new($host, Debug => 0) or die "Could not connect to '$host': $@"; $ftp->login($user, $pass) or die sprintf "Could not login: %s", $ftp->message; $ftp->cwd($ftp_dir) or die sprintf "Could not login: %s", $ftp->message; # FTP file. $ftp->put($filename) or die "Cannot put file ", $ftp->message; $ftp->quit; }