![]() |
|
|
| Subject:
Fileupload: Perl 5.8.6, CGI 3.07. It DID worked in perl 5.6.1
Category: Computers > Programming Asked by: devanchya-ga List Price: $25.00 |
Posted:
18 Mar 2005 05:31 PST
Expires: 19 Mar 2005 17:33 PST Question ID: 496672 |
Hello all,
I have had to do a very fast switch to a new server for a client. The
new server is running 5.8.6 when the old server was running 5.6.1. The
new server is also running CGI 3.07 when the old one was running
2.752... [Hope this helps]
The problem is, both servers are Cobalt4's with a CGIwrap on them. I
have managed to get the site working 99.9% on the new server except
for the file uploading. The code worked on the old server perfectly,
and I've torn my hair out for 5 hours now trying to figure out why it
is not working.
Here's the code snippet
my $query = new CGI();
my $fh = $query->upload("auth_upload");
if(!defined $fh)
{
open(OUTFILE,">".ORDERAUTH."w$orderid"."auth"."$type") or
oops('file_write_failed', $!);
while (<$fh>)
{
print OUTFILE $_;
}
close(OUTFILE);
}
The problem is, $fh (which I've checked a billions ways) is always
coming out empty (undefined) no matter what. It's perfectly defined in
perl5.6.1
when I do a simple param('auth_upload'); the file name does show up correctly.
Any help GREATLY and BEGGINGLY accepted. This is drving me nuts and I
have until Saturday to fix it (when the old server goes bye-bye)
Thank you! |
|
| There is no answer at this time. |
|
| Subject:
Re: Fileupload: Perl 5.8.6, CGI 3.07. It DID worked in perl 5.6.1
From: ullfindsmit-ga on 18 Mar 2005 21:37 PST |
are you sure on the <FORM .....></FORM> you have the input type to
FILE and not TEXT
also, try using this code to help you debug.
use strict;
use FileUpload;
use CGI qw(-private_tempfiles :standard);
use vars qw($q $fu);
$q = new CGI;
$fu = new FileUpload($cgi->param('ufile'));
# The uploaded file's size.
$size = $fu->size;
# Get the filename.
$filename = $fu->orig_filename;
# Get the full path of the file.
$filepath = $fu->orig_filepath;
# Get the characters allowed.
@chararr = $fu->allow_char;
# Add the characters allowed.
@chararr = $fu->allow_char('char1', 'char2');
# Get the extensions not allowed.
@extarr = $fu->deny_ext;
# Add the extensions not allowed.
@extarr = $fu->deny_ext('cgi', 'shtml');
# Save the uploaded file as the original filename.
$byteswritten = $fu->save;
# Save the uploaded file by using "newfilename".
$byteswritten = $fu->save_as("newfilename");
# Get the filehandle's current position.
$pos = $fu->get_pos;
# Set the filehandle position.
$fu->set_pos($newpos);
# Read a line.
$aline = $fu->get_line;
# Read many lines.
@lines = $fu->get_lines;
lemme know
-Smit. |
| Subject:
Re: Fileupload: Perl 5.8.6, CGI 3.07. It DID worked in perl 5.6.1
From: devanchya-ga on 19 Mar 2005 17:33 PST |
Issue solve.d The issue is that the new CGI's only allow fileupload thorugh the first call of CGI, creating a fake global solved it til a re-write's possible. |
If you feel that you have found inappropriate content, please let us know by emailing us at answers-support@google.com with the question ID listed above. Thank you. |
| Search Google Answers for |
| Google Home - Answers FAQ - Terms of Service - Privacy Policy |