Beefy Boxes and Bandwidth Generously Provided by pair Networks
Don't ask to ask, just ask
 
PerlMonks  

File Upload and display back to browser using CGI

by dga (Hermit)
on Aug 22, 2001 at 00:13 UTC ( #106748=sourcecode: print w/ replies, xml ) Need Help??

Category: CGI Programming
Author/Contact Info
Description:

This creates a form for a file upload, receieves the file and then puts the file back out to the browser.

Capturing and storing the file is left as an excersize for the reader.

It does capture the salient points about getting the file in and out.

#!/usr/bin/perl

use strict;
use CGI -private_tempfiles;
$CGI::POST_MAX=1024*1024;       # limit to 1 megabyte per form posting
                                #disables checking for $q->param()

my $q=CGI->new();

if($q->param())
{
        my $fh=$q->upload('uploaded_file', -override=>1);
        unless($fh)
        {
                print $q->header, $q->html("Invalid File", $q->p("Inva
+lid File"));
                exit;
        }
        my $type=$q->uploadInfo($fh)->{'Content-Type'};
        seek($fh, 0, 2);
        my $size=tell($fh);
        seek($fh, 0, 0);
        print STDERR "File Input: $fh, $type, $size\n";
        print $q->header(-type=>"$type");
        print $q->start_html('Your file')       if($type =~ /text/);
        while(<$fh>)
        {
                print;
        }
        print $q->end_html()    if($type =~ /text/);
                
}
else
{
        print $q->header(-type=>'text/html'), $q->html('upload file', 
                $q->start_multipart_form(),
                $q->filefield(-name=>'uploaded_file', -default=>'start
+ing', -override=>1, -size=>50, -maxlength=>80),
                $q->hidden("uni", time()),
                $q->submit("Ok"),
                $q->end_multipart_form(),
        );
}

Comment on File Upload and display back to browser using CGI
Download Code

Back to Code Catacombs

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: sourcecode [id://106748]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others chanting in the Monastery: (7)
As of 2014-12-25 11:55 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Is guessing a good strategy for surviving in the IT business?





    Results (160 votes), past polls