Have a look at Apache2::UploadProgress.

Update: the upload hook that you pass into new() only takes effect on file uploads, not on generic POST requests.

Here's a little script that lets you test it. You will soon notice that the upload hook - while working as intended - is completely useless. The reason for this is that under regular CGI, you simply don't get to send output to the browser before the entire post has been received. To give feedback while the upload is in progress, you must trick the webserver into letting you, and that's why Apache2::UploadProgress is a much better tool than rolling your own.

use strict; use warnings; use CGI; my $hook_called; my $cgi = CGI->new( \&_hook ); print $cgi->header(), $cgi->start_html("FOO"), $cgi->start_multipart_form, $cgi->filefield('file'), $cgi->submit, $cgi->end_form; sub _hook { my ( $filename, $buffer, $bytes_read, $data ) = @_; if( !$hook_called ) { print "Content-Type: text/html; charset=ISO-8859-1\n\n"; # +$cgi is not defined here $hook_called = 1; } else { print "Read $bytes_read bytes of filename\n"; } $hook_called += $bytes_read; } print $cgi->end_html;

In reply to Re: CGI hook by rhesa
in thread CGI hook by datannen

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.