in reply to CGI.pm uploads under mod_Perl on WinNT

I can't offer any help as to why it's happenning but until the problem's solved why don't you add an END{} subroutine to your program and clean things up? At least then you wouldn't have to worry about your temp folder filling up.

--Jim

  • Comment on Re: CGI.pm uploads under mod_Perl on WinNT

Replies are listed 'Best First'.
Re: Re: CGI.pm uploads under mod_Perl on WinNT
by ajt (Prior) on Nov 20, 2001 at 14:56 UTC
    Thanks to perrin and jlongino for their comments. I also contacted Lincoln and exchanged a few ideas with him. Apparently there have been some problems reported with file upload on CGI under mod_Perl, but they have been intermittent and hard to track down.

    I added some debugging code to the TempFile DESTROY routine, and after remembering to cycle Apache so that the change got noticed, I discovered that there was an "Permission denied" problem.

    Having previously had problems with File::Cache under NT before, I went back into my code and made sure that there was an explicit close to the uploaded file after I copied it from temp. Letting the handle go out of scope, appears to trigger CGI's DESTROY (it works find under CGI-BIN), but not under mod_Perl PerlRun. I added a close $handle at the end of the block just before it went out of scope, and now it works fine.

    Lessons learnt:

    • People here are helpful - thanks yet again.
    • Some module authors are helpful, even though they are very busy - thanks Lincoln.
    • NT can do stupid things - it's amazing that Perl and Apache/mod_Perl run on it at all. See timeout from UserAgent from mod_perl and multithreading mod_perl on Windows NT for examples, this had me stumped for a while too.
    • I constantly underestimate mod_Perl, it's powerful and complex.
    • Usually the problem is me, and trying to explain the problem to other people helps me to see where I went wrong.

    Many thanks in arrears.