Beefy Boxes and Bandwidth Generously Provided by pair Networks
more useful options
 
PerlMonks  

File Upload and display back to browser using CGI

by dga (Hermit)
on Aug 22, 2001 at 00:13 UTC ( [id://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(),
        );
}

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others taking refuge in the Monastery: (5)
As of 2024-04-24 12:01 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found