Loading ...
Sorry, an error occurred while loading the content.

Mod_perl upload problem

Expand Messages
  • Bart Terryn
    Hi, I m have been running mod_perl for a while now. Current situation is: -Win 2000 SP2 -Apache 2.0.47 -mod_perl 1.999.22 -Perl 5.8.3 http conf: Alias
    Message 1 of 2 , Apr 30, 2005
    • 0 Attachment
      Hi,

      I'm have been running mod_perl for a while now.
      Current situation is:
      -Win 2000 SP2
      -Apache 2.0.47
      -mod_perl 1.999.22
      -Perl 5.8.3

      http conf:
      Alias /mod_perl/ "C:/Program Files/Apache Group/Apache2/mod_perl/"
      <Location /mod_perl>
      SetHandler perl-script
      PerlResponseHandler ModPerl::Registry
      PerlOptions -ParseHeaders
      Options +ExecCGI
      </Location>

      But all of the sudden I'm having problems with the file uploads from a form.
      In the error.log file I find:
      CGI open of tmpfile: No such file or directory

      Note that those same forms gave no trouble before.
      Don't know what switch did create the error.
      My guess it is the installation of Perl5.8.3 (from a 5.8.1 version) and its
      accompagning CGI v3.01.
      Have also tried with the lastest 3.08 CGI module from CPAN

      I have reduced the error to the following form and its brother mod_perl
      script.

      Note also that the script is running OK when placed in the cgi-bin folder
      (no mod_perl). I know that is not a guarantee that it should work under
      mod_perl, but still it is a nice indication.

      Form
      ========
      <html xmlns="http://www.w3.org/1999/xhtml" lang="en">
      <head>
      <title>Upload Test</title>
      </head>

      <body>
      <h4>Upload:</h4>
      <form method="post" action="/mod_perl/upload-test.pl"
      enctype="multipart/form-data">
      <br />
      <input name="file" type="file" size="60" /><br />
      <input type="button" value="Cancel" onclick="window.history.go(-3)"
      />

      <input type="submit" value="Upload File" />
      </p>
      </form>
      </body></html>

      Script
      ==========
      #!C:\Perl\bin\perl.exe
      use CGI;
      my $q = CGI->new();
      print $q->header, $q->start_html('result'),$q->h1('the uploaded file');
      my $filename = $q->upload('file');
      print $q->p("filename: $filename");
      print $q->p("content:");
      print "<pre>";
      while (<$filename>) { print; }
      print "</pre>";
      print $q->end_html;
    • Stas Bekman
      ... Hmm, looks like a not very good diagnostics on the behalf of the CGI. Try to fix it to print the actual filename and submit the patch to Lincoln? ... Check
      Message 2 of 2 , May 1, 2005
      • 0 Attachment
        Bart Terryn wrote:
        > Hi,
        >
        > I'm have been running mod_perl for a while now.
        > Current situation is:
        > -Win 2000 SP2
        > -Apache 2.0.47
        > -mod_perl 1.999.22
        > -Perl 5.8.3
        >
        > http conf:
        > Alias /mod_perl/ "C:/Program Files/Apache Group/Apache2/mod_perl/"
        > <Location /mod_perl>
        > SetHandler perl-script
        > PerlResponseHandler ModPerl::Registry
        > PerlOptions -ParseHeaders
        > Options +ExecCGI
        > </Location>
        >
        > But all of the sudden I'm having problems with the file uploads from a form.
        > In the error.log file I find:
        > CGI open of tmpfile: No such file or directory

        Hmm, looks like a not very good diagnostics on the behalf of the CGI. Try
        to fix it to print the actual filename and submit the patch to Lincoln?

        > Note that those same forms gave no trouble before.
        > Don't know what switch did create the error.
        > My guess it is the installation of Perl5.8.3 (from a 5.8.1 version) and its
        > accompagning CGI v3.01.
        > Have also tried with the lastest 3.08 CGI module from CPAN
        >
        > I have reduced the error to the following form and its brother mod_perl
        > script.
        >
        > Note also that the script is running OK when placed in the cgi-bin folder
        > (no mod_perl). I know that is not a guarantee that it should work under
        > mod_perl, but still it is a nice indication.

        Check the username you are running Apache under. It may be the culprit
        (i.e. your mod_cgi is running under a different user id). Also refer to
        the CGI manpage how to explicitly set the TMP directory to something that
        you know that works.

        --
        __________________________________________________________________
        Stas Bekman JAm_pH ------> Just Another mod_perl Hacker
        http://stason.org/ mod_perl Guide ---> http://perl.apache.org
        mailto:stas@... http://use.perl.org http://apacheweek.com
        http://modperlbook.org http://apache.org http://ticketmaster.com
      Your message has been successfully submitted and would be delivered to recipients shortly.