in reply to Re: CGI upload efficiency
in thread CGI upload efficiency

Thanks for the example, I'll try it straight away.

my $q = CGI->new(\&hook, 'some arbitrary data', 0);

If I read this correctly, the '0' tells CGI not to write data to it's normal file and therefore the bits will only end up going wherever &hooks directs them to?

Regarding the temp file location, I had trouble changing the location in code, but setting the TMPDIR env variable in the OS worked for what I needed.

The behavior I saw was that even on the same drive CGI made a copy of the file and then unlinked the CGITemp one. On a 2GB file the delay was quite noticeable, so I used sysinternals procmon to verify that the data was infact copied, even when on the same disk. It could work differently on linux, no doubt. It really wouldn't be an issue either way if the files were a more reasonable size ;)

Replies are listed 'Best First'.
Re^3: CGI upload efficiency
by sauoq (Abbot) on May 08, 2012 at 22:41 UTC
    If I read this correctly, the '0' tells CGI not to write data to it's normal file and therefore the bits will only end up going wherever &hooks directs them to?

    Yes. If you instantiate CGI.pm this way, it won't write the uploaded data to a temp file. Your only chance to do something with it is as you get it chunk by chunk in your callback routine (the hook function.)

    -sauoq
    "My two cents aren't worth a dime.";