> Jared Hess wrote:
>
> I have nearly completed my first 'real' CGI script (yes I'm a Perl newbi) which
>uploads a .zip file to a remote directory from a web form created by my CGI script.
>
> I'm running across a problem with capitalized letters turning up in submitted script
>filenames or pathways. Consequently, selecting a file via my form's Browse button
>doesn't work because the pathway the button returns always has a capital letter in
>it. Something like this: "E:\temp\testfile.ZIP". If I press submit it actually does
>upload the file, but for some reason those files always have a file size of 0, which
>I then delete...
>
> Things I've tried:
> * If I make all uppercase letters lowercase by manually changing them to their
>lowercase equivalent in the upload field, it work's perfectly, and the file has the
>correct file size.
> * Using the lc() function to make the submitted filename and pathway string
>lowercase does make them lowercase but I still get files of zero size.
> * I tried changing where the temp file is stored by using adding this line:
> $TempFile::TMPDIRECTORY='/WWW_ROOT';
> That doesn't fix anything.
> * I've tried using this line:
> $tmpfile = tmpFileName($query->param('$fullfile'));
> to find out where the temporary file is getting stored but that doesn't work either.
>When it dies, my $tmpfile string doesn't print any info.
> * I've looked at numerous message boards but to no avail...
>
> Has anyone encountered this problem before? Is there something wrong with my script?
>
> I'm using:
> * Windows NT 4.0 with SP6
> * Perl (ActiveState for Win32)
> * ISP's Server? (I dunno; I'm new at all this-- Perl Diver CGI shows that my server
>software is Zeus/3.3 whatever that is)
>
> ## snip of my script ##
> sub save_file {
> $description = param('description');
> $instructions = param('instructions');
> $name = param('name');
> $email = param('email');
> $file = param('filename');
> $file=lc($file);
> $fullfile = $file;
> $file=~s/^.*(\\|\/)//; # STRIP PATHWAY OFF!
> ########################################
> ## BEGIN UPLOAD AND RUN SOME TESTS
> ########################################
> ##
> fileext_test(); ###### TESTS FOR CORRECT EXTENTION
> filename_test(); ##### TESTS FOR DUPLICATE NAME ON SERVER
>
> open (SAVEFILE, ">$savedir$file") || dienice("Can't open filehandle: $!\n");
> while (read($fullfile, $buffer, 1024)) {
> print SAVEFILE $buffer;
> }
> $tmpfile = tmpFileName($query->param('$fullfile')); ### THIS TESTS THE
>LOCATION OF THE THE TEMP FILE CREATED DURING THE UPLOAD.
> close(SAVEFILE) || dienice ("Can't close filehandle: $!\n");
>
> filesize_test(); ###### TESTS FOR VALID FILESIZE
> nodata(); ##### TESTS FILE FOR DATA
> ########################################
> ########## END UPLOAD AND TESTS ########
> ########################################
> ## end snip ##
If you're uploading binary data, you'll need to binmode input and output files.
--
,-/- __ _ _ $Bill Luebkert ICQ=14439852
(_/ / ) // // DBE Collectibles http://www.todbe.com/
/ ) /--< o // // Mailto:[EMAIL PROTECTED] http://dbecoll.webjump.com/
-/-' /___/_<_</_</_ http://www.freeyellow.com/members/dbecoll/
_______________________________________________
Perl-Win32-Web mailing list
[EMAIL PROTECTED]
http://listserv.ActiveState.com/mailman/listinfo/perl-win32-web