perl-asp mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Richard Curtis <>
Subject Re: Another stupid question...
Date Tue, 11 Feb 2003 16:58:11 GMT
>> Following is a post which I hope will clarify what I have been doing 
>> up until now, along with some questions regarding the correct way to 
>> do this.
>> Until now, I have always handled file uploads in the following way :
>> draw in HTML "<input type="file" name="filename">".
>> Then the form posts in on itself, and I use
>> my $newFile = $Request->Form('filename');
>> $newFile is then passed to a module which will basically do the 
>> following (along with a lot more):
>>     while ($rets=read($newFile,$line,1024)) { # Read in BINARY
>>     my @lin = $line;
>>     my $status = append_file($destination_path, $file,\@lin);
>>     if (!$status) {
>>         return(0,"error storing file on server ($!)");
>>     }
>>     @lin = ();
>>     }
>> This has always worked for me.
>> Now however, I need to not only upload the file to the server, but I 
>> need to store the filename in a database (among doing other things 
>> with the filename).
> When you say filename, I will assume you mean the file name client side
> being uploaded...
>> So should I be doing :
>>  my $newFile = $Request->{FileUpload}{filename};
>> $newFile = $newFile->{BrowserFile};
> Right BrowserFile will give you the name of the file as it was uploaded.
>> ?
>> If not, what should I be doing.
>> What should I call to get handle, and what should I call to get the 
>> actual filename ?
> Well, what you have been doing works fine for getting the file handle,
> but you can also get it from;
>   $Request->FileUpload('upload_file', 'FileHandle');
>> I am sooo confused !
> Originally, the file upload interface was only available through
> doing it as you do with
>   my $fh = $Request->Form('upload_file')
> but as users needed more of the file upload info, I created the
> FileUpload collection to store more of the data.  Originally
> MS ASP did not have any native file upload support, so I had not
> API to emulate here, and had to make it up as we went.

I have one further query.  If I do the following.. (where "filename" is 
the name of the file upload box on the html page) :

my $newFileHandle = $Request->Form('filename');
my $newFileName = $Request->FileUpload('filename','BrowserFile');

Is that the correct syntax ?
I mean it appear to work, but I still notice something slightly strange.
If I print them both, they both show the same :

my $newFileHandle = $Request->Form('filename');
print "file handle: $newFileHandle <br>";
my $newFileName = $Request->FileUpload('filename','BrowserFile');
print "name: $newFileName <br>";

... this gives :
file handle: points.doc
name: points.doc

If I print to Data::Dumper as follows :

print Dumper $newFileHandle . "<br>";
print Dumper $newFileName . "<br>";

I get the following output....

file handle: $VAR1 = bless( \*{'Fh::fh00003points.doc'}, 'Fh' );
name: $VAR1 = bless( \*{'Fh::fh00003points.doc'}, 'Fh' );

So, what is the difference.
When I ask for "browserFile" from the FileUpload request object, why is 
it still a file handle ?

Maybe I am just being incredibly stupid, but I dont see any difference 
to doing it this way, as to the way I was initially doing it.


To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message