Y
Yasir Zaheer
Hi all,
I am facing some problems in creating a zip file coming as HTTP data
stream in perl running over Linux RedHat 4. The actual scenario is
that I am recieving a data stream send by a .Net application running
on windows XP that sends the stream by just reading and sending all
the bytes from a zip file. My logs displays all the data recieved in
the varialbe $$params{LOG} on console but i am unable to create a zip
file out of that. Any help in this regards will be appreciated.
use core qw ( CGI_USER ) ;
use utils::MailMime;
$core::dbh->ensureWebAlive();
my $osysconfig = sysconfig->new({MINIMAL => '1'});
use Archive::Zip qw( :ERROR_CODES :CONSTANTS );
my $params = CGI::Vars();
use Archive::Zip qw( :ERROR_CODES );
#print "Content-type:text/html\n\n";
print header;
my $MAILTO = '(e-mail address removed)';
my $MAILFROM = '(e-mail address removed)';
my $smtp = $osysconfig->GetSMTPServer();
my $port = $osysconfig->GetSMTPServerPort();
my $host = hostname();
my $omailer = MailMime->new( { SMTPSERVER=> $smtp, SMTPSERVERPORT =>
$port } );
# $$params{LOG} ---- this is the binary zipped file which i have to
attached with email.
if (($$params{LOG}) and (not $$params{REMOTEFILE}))
{
$file = '/tmp/tmp.zip' ;
#use Archive::Zip;
#my $zip = new Archive::Zip;
#my $data = "$$params{LOG}";
#$zip->addString($data,"LOG");
#$zip->writeToFileNamed($$params{LOG});
#print FILE $$params{LOG};
#close FILE;
#give read write permission to all
#`chmod 666 $file`;
my $fh;
#open ( $fh , '>', $file ) or $core::logger->Die( 'Error opening
file', $@);
#print $fh "$$params{LOG}";
#if (defined $$params{LOG});
#print $fh $$params{SCREENSHOT}
#if (defined $$params{SCREENSHOT});
close $fh;
}
my $text = "Application logs are attached\n\nDetails of the sender:\n
\nLogin:$$params{LOGIN} \nServer Address: $host";
$text .= "\n\n$$params{USERTEXT}" if ( $$params{USERTEXT} );
my %Ret;
if (($$params{LOG}) and (not $$params{REMOTEFILE}))
{
eval
{
%Ret = $omailer->SendFile({
From => $MAILFROM,
To => $MAILTO,
Subject => "Application Report from $$params{LOGIN} on $host",
Text => $text ,
Path => $file,
Type => 'binary'
}) or die "Could not send mail [$!]";
};
}
if ( $@ )
{
print "$@\n";
}
else
{
print "1";
}
regards,
Yasir.
I am facing some problems in creating a zip file coming as HTTP data
stream in perl running over Linux RedHat 4. The actual scenario is
that I am recieving a data stream send by a .Net application running
on windows XP that sends the stream by just reading and sending all
the bytes from a zip file. My logs displays all the data recieved in
the varialbe $$params{LOG} on console but i am unable to create a zip
file out of that. Any help in this regards will be appreciated.
use core qw ( CGI_USER ) ;
use utils::MailMime;
$core::dbh->ensureWebAlive();
my $osysconfig = sysconfig->new({MINIMAL => '1'});
use Archive::Zip qw( :ERROR_CODES :CONSTANTS );
my $params = CGI::Vars();
use Archive::Zip qw( :ERROR_CODES );
#print "Content-type:text/html\n\n";
print header;
my $MAILTO = '(e-mail address removed)';
my $MAILFROM = '(e-mail address removed)';
my $smtp = $osysconfig->GetSMTPServer();
my $port = $osysconfig->GetSMTPServerPort();
my $host = hostname();
my $omailer = MailMime->new( { SMTPSERVER=> $smtp, SMTPSERVERPORT =>
$port } );
# $$params{LOG} ---- this is the binary zipped file which i have to
attached with email.
if (($$params{LOG}) and (not $$params{REMOTEFILE}))
{
$file = '/tmp/tmp.zip' ;
#use Archive::Zip;
#my $zip = new Archive::Zip;
#my $data = "$$params{LOG}";
#$zip->addString($data,"LOG");
#$zip->writeToFileNamed($$params{LOG});
#print FILE $$params{LOG};
#close FILE;
#give read write permission to all
#`chmod 666 $file`;
my $fh;
#open ( $fh , '>', $file ) or $core::logger->Die( 'Error opening
file', $@);
#print $fh "$$params{LOG}";
#if (defined $$params{LOG});
#print $fh $$params{SCREENSHOT}
#if (defined $$params{SCREENSHOT});
close $fh;
}
my $text = "Application logs are attached\n\nDetails of the sender:\n
\nLogin:$$params{LOGIN} \nServer Address: $host";
$text .= "\n\n$$params{USERTEXT}" if ( $$params{USERTEXT} );
my %Ret;
if (($$params{LOG}) and (not $$params{REMOTEFILE}))
{
eval
{
%Ret = $omailer->SendFile({
From => $MAILFROM,
To => $MAILTO,
Subject => "Application Report from $$params{LOGIN} on $host",
Text => $text ,
Path => $file,
Type => 'binary'
}) or die "Could not send mail [$!]";
};
}
if ( $@ )
{
print "$@\n";
}
else
{
print "1";
}
regards,
Yasir.