Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot

Re: Re: CGI::Upload - CGI class for handling browser file uploads

by rob_au (Abbot)
on Mar 12, 2002 at 22:56 UTC ( #151258=note: print w/replies, xml ) Need Help??

in reply to Re: CGI::Upload - CGI class for handling browser file uploads
in thread CGI::Upload - CGI class for handling browser file uploads

I'm curious though, CGI->upload() returns a filehandle, so does CGI->param() for that matter. I am wondering why in _handle_file() you read from this filehandle and write to a new tempfile so you can provide your own filehandle. Wouldn't it be easier to use the filehandle the provides?

I have actually considered this but haven't had a chance to read through the in detail to see exactly how it handles its temporary files. Much of this module code has evolved from subroutines that I have used in some CGI scripts in the past.

If anything, you might view the method I have taken as the defensive approach in the absence of any better informed opinion :-) This can also be seen in my resetting of the file pointer for the temporary file after calling the checktype_filehandle function from File::MMagic - While this resetting of the file pointer is in all likelihood unnecessary, I have included it for the sake of a "defensive" approach to this code.

As for the binmode on the newly-created file handle, this is a very good point - Again, I will look into this and the handling of temporary files by and revise this code accordingly.

Thanks again for you comments $code or die++


Update - I've had a look at the implementation of temporary files within and at this stage, I believe I will remain with the implementation I have in the code above - This is in part because of the robustness of the POSIX-based new_tmpfile method exported from IO::File which I am quite comfortable with from a "paranoia" perspective :-)


perl -e 's&&[@.]/&&s&.com.&_&&&print'

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://151258]
[marto]: nice
[choroba]: New blogpost after a long pause!
marto needs to think of a joke where the punchline is "why the long paws?"

How do I use this? | Other CB clients
Other Users?
Others chilling in the Monastery: (10)
As of 2018-03-20 16:21 GMT
Find Nodes?
    Voting Booth?
    When I think of a mole I think of:

    Results (254 votes). Check out past polls.