diff options
-rw-r--r-- | IkiWiki/Plugin/attachment.pm | 8 | ||||
-rw-r--r-- | doc/bugs/attachment:_failed_to_get_filehandle.mdwn | 9 |
2 files changed, 16 insertions, 1 deletions
diff --git a/IkiWiki/Plugin/attachment.pm b/IkiWiki/Plugin/attachment.pm index f4f64b46a..ed1cd61fe 100644 --- a/IkiWiki/Plugin/attachment.pm +++ b/IkiWiki/Plugin/attachment.pm @@ -88,6 +88,10 @@ sub formbuilder (@) { #{{{ # of the temp file that CGI writes the upload to. my $tempfile=$q->tmpFileName($filename); + if (! defined $tempfile) { + error("failed to determine temp filename"); + } + $filename=IkiWiki::titlepage( IkiWiki::possibly_foolish_untaint( attachment_location($form->field('page')). @@ -136,7 +140,9 @@ sub formbuilder (@) { #{{{ # needed by old CGI versions $fh=$q->param('attachment'); if (! defined $fh || ! ref $fh) { - error("failed to get filehandle"); + # even that doesn't always work, + # fall back to opening the tempfile + open($fh, "<", $tempfile) || error("failed to open $tempfile: $!"); } } binmode($fh); diff --git a/doc/bugs/attachment:_failed_to_get_filehandle.mdwn b/doc/bugs/attachment:_failed_to_get_filehandle.mdwn index e5d4756fc..906d01e24 100644 --- a/doc/bugs/attachment:_failed_to_get_filehandle.mdwn +++ b/doc/bugs/attachment:_failed_to_get_filehandle.mdwn @@ -54,6 +54,15 @@ the error message like below: >>>>>> --[[Paweł|ptecza]] +>>>>>>> Well then, your CGI.pm is somehow not behaving as its documentation +>>>>>>> describes, in two ways: +>>>>>>> 1. `upload()` is not returning a reference to the filehandle +>>>>>>> 2. The filename returned by `param("attachment")` is not also +>>>>>>> a file handle. +>>>>>>> That seems very broken. I can try to work around it some more +>>>>>>> though. I've checked in a second try at dealing with things, can +>>>>>>> you try it? --[[Joey]] + The same message I can see in the Apache log file. There is also following warning: |