Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw
 
PerlMonks  

Re^3: CGI hook

by Zaxo (Archbishop)
on Aug 08, 2006 at 03:23 UTC ( #566058=note: print w/ replies, xml ) Need Help??


in reply to Re^2: CGI hook
in thread CGI hook

In my CGI.pm, that passage reads,

           You can set up a callback that will be called whenever a
       file upload is being read during the form processing. This
       is much like the UPLOAD_HOOK facility available in
       Apache::Request, with the exception that the first
       argument to the callback is an Apache::Upload object, here
       it's the remote filename.

        $q = CGI->new();
        $q->upload_hook(\&hook,$data);

        sub hook
        {
               my ($filename, $buffer, $bytes_read, $data) = @_;
               print  "Read $bytes_read bytes of $filename\n";
        }

The hook is not an argument to new, but is set in the upload_hook method.

After Compline,
Zaxo


Comment on Re^3: CGI hook
Re^4: CGI hook
by rhesa (Vicar) on Aug 08, 2006 at 03:36 UTC
    It was added as an option to new() in version 3.12. For versions before that, you are right. Current version is 3.20 btw.
Re^4: CGI hook
by imp (Priest) on Aug 08, 2006 at 03:47 UTC
    Timeline for upload_hook support:
    • 3.01 - upload_hook support added
    • 3.03 - support for upload_hook configuration in new() added
    • 3.12 - documentation updated to reflect change that was made in 3.03
    Found the correction for 3.12 by checking the change list:
Re^4: CGI hook
by cees (Curate) on Aug 08, 2006 at 04:27 UTC

    That example in the CGI.pm docs never worked right. upload_hook can only be used as a function call, not as a method call. This is because when you create a new CGI object, it immediately calls 'init' which parses the request information, and that includes handling any file uploads. So by the time new returns, the file upload has already been handled and hence it is too late to set up the upload hook. That is why it was changed so that you pass the upload hook as a parameter to new.

    However, when using the functional interface you can use the upload_hook function, as long as you call it before you make any other calls.

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others exploiting the Monastery: (8)
As of 2014-12-28 09:36 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

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





    Results (180 votes), past polls