Connecting Tech Pros Worldwide Forums | Help | Site Map

Need help with a simple Perl script

Dick Sutton
Guest
 
Posts: n/a
#1: Jun 27 '08
First of all, I am a rank amateur at Perl. Here is my problem: I have a
hundred or more files in a directory on a web server (let's call it
'Library'). Each file is a pdf file and is named 'yyyymmm.pdf' where yyyy
is the year (i.e. 2007) and mmm is the first 3 letters of the month (i.e.
Jan). So a typical file name looks like '2007Jan.pdf'.

I wrote a simple html page using FORM that allows the user to select the
year and the month and then press the SUBMIT button and I want the
respective pdf file returned into the users browser. The problem is, I
don't know how to return a pdf file to the browser.

Here's what I have so far:

#!/usr/local/bin/perl -wT
use strict;
use CGI ':standard';

# declare variables...
my $year;
my $month;
my $pdffile;

# get the parameters...
$year = param('Year');
$month = param('Month');

# construct the relative pathname to the actual PDF file
$pdffile = '../Library/'.$Year.$Month.'.pdf';

print 'Content-type: application/pdf\n\n';

This is where I'm stuck. Can someone push me in the right direction. I
would think it should be trivial. I just don't know how to procede.

Thanks in advance...

Dick


Netlurker
Guest
 
Posts: n/a
#2: Jun 27 '08

re: Need help with a simple Perl script


On Wed, 28 May 2008 22:40:28 -0400, Dick Sutton wrote:
Quote:
First of all, I am a rank amateur at Perl. Here is my problem: I have a
hundred or more files in a directory on a web server (let's call it
'Library'). Each file is a pdf file and is named 'yyyymmm.pdf' where
yyyy is the year (i.e. 2007) and mmm is the first 3 letters of the month
(i.e. Jan). So a typical file name looks like '2007Jan.pdf'.
>
I wrote a simple html page using FORM that allows the user to select the
year and the month and then press the SUBMIT button and I want the
respective pdf file returned into the users browser. The problem is, I
don't know how to return a pdf file to the browser.
>
Here's what I have so far:
>
#!/usr/local/bin/perl -wT
use strict;
use CGI ':standard';
>
# declare variables...
my $year;
my $month;
my $pdffile;
>
# get the parameters...
$year = param('Year');
$month = param('Month');
>
# construct the relative pathname to the actual PDF file $pdffile =
'../Library/'.$Year.$Month.'.pdf';
>
print 'Content-type: application/pdf\n\n';
>
This is where I'm stuck. Can someone push me in the right direction. I
would think it should be trivial. I just don't know how to procede.
>
Thanks in advance...
>
Dick
Grab the file content and print it out after your type header...

open(FILE,"<$pdffile");
@file = <FILE>;
close(FILE);

print "Content-Type:application/pdf\n\n";
print @file;

- Netlurker
Dick Sutton
Guest
 
Posts: n/a
#3: Jun 27 '08

re: Need help with a simple Perl script



"Netlurker" <noemail@foo.barwrote in message
news:qZp%j.867706$us.185149@fe04.news.easynews.com ...
Quote:
On Wed, 28 May 2008 22:40:28 -0400, Dick Sutton wrote:
>
Quote:
>First of all, I am a rank amateur at Perl. Here is my problem: I have a
>hundred or more files in a directory on a web server (let's call it
>'Library'). Each file is a pdf file and is named 'yyyymmm.pdf' where
>yyyy is the year (i.e. 2007) and mmm is the first 3 letters of the month
>(i.e. Jan). So a typical file name looks like '2007Jan.pdf'.
>>
>I wrote a simple html page using FORM that allows the user to select the
>year and the month and then press the SUBMIT button and I want the
>respective pdf file returned into the users browser. The problem is, I
>don't know how to return a pdf file to the browser.
>>
>Here's what I have so far:
>>
>#!/usr/local/bin/perl -wT
>use strict;
>use CGI ':standard';
>>
># declare variables...
>my $year;
>my $month;
>my $pdffile;
>>
># get the parameters...
>$year = param('Year');
>$month = param('Month');
>>
># construct the relative pathname to the actual PDF file $pdffile =
>'../Library/'.$Year.$Month.'.pdf';
>>
>print 'Content-type: application/pdf\n\n';
>>
>This is where I'm stuck. Can someone push me in the right direction. I
>would think it should be trivial. I just don't know how to procede.
>>
>Thanks in advance...
>>
>Dick
>
Grab the file content and print it out after your type header...
>
open(FILE,"<$pdffile");
@file = <FILE>;
close(FILE);
>
print "Content-Type:application/pdf\n\n";
print @file;
>
- Netlurker
Thanks, Netlurker, I'll give that a try. Then I'll try to figure out what
each line does. ha-ha. I told you I was a novice Perl scripter.

Dick

Randal L. Schwartz
Guest
 
Posts: n/a
#4: Jun 27 '08

re: Need help with a simple Perl script


>>>>"Netlurker" == Netlurker <noemail@foo.barwrites:

Netlurkerprint "Content-Type:application/pdf\n\n";

You're missing the space after the colon. Don't do that.

--
Randal L. Schwartz - Stonehenge Consulting Services, Inc. - +1 503 777 0095
<merlyn@stonehenge.com<URL:http://www.stonehenge.com/merlyn/>
Smalltalk/Perl/Unix consulting, Technical writing, Comedy, etc. etc.
See http://methodsandmessages.vox.com/ for Smalltalk and Seaside discussion
** Posted from http://www.teranews.com **
Closed Thread