This was sent to the wrong user.  Note: remember to *group reply* to 
messages so that the list e-mail is kept in the headers.  Vargas media 
you should see what Andres wrote below and it appears that someone else 
had replied to your original post (8/27), which I just came across, with 
some coding changes.


Andres L. Figari wrote:
> do you have access to your log files?
> 
> Check there right after you get the server error.  It should give you a
> clue.
> 
> Also, make sure you upload a perl file in ascii not binary.  Binary can
> create problems a times.  Make sure the module you are using, CGI,pm is
> loaded.  Then look at your code.
> 
> Can't see your cgi code ...
> so don't know what else ...
> 
> ----- Original Message -----
> From: "Wiggins d'Anconia" <[EMAIL PROTECTED]>
> To: "Vargas Media" <[EMAIL PROTECTED]>
> Cc: "Perl Beginners Group" <[EMAIL PROTECTED]>
> Sent: Wednesday, August 28, 2002 6:10 PM
> Subject: Re: upload.cgi
> 
> 
> 
>>Note:  questions of this nature you might want to send to
>>[EMAIL PROTECTED] as that is a list specifically about cgi, though
>>in most cases the beginners list will be able to help you too.
>>
>>Vargas Media wrote:
>>
>>>Hi,
>>>I have been studying with the O'Reilly book "CGI Programming with
>>
> Perl" -
> 
>>>Chapter 5 page 99
>>>Below is an example of a upload.cgi that utilizes CGI.pm
>>>I am not able to get it to work correctly yet and I am trying to find
>>
> out if
> 
>>>it is the directory I am trying to load the file to or a progammatical
>>>error. The html is at:
>>>http://www.vargasmedia.com/upload.htm
>>>I have been using
>>>http://www.vargasmedia.com/cgi-bin/env_var.cgi
>>>to help me get the information I need to upload files using the correct
>>>path.
>>>Is that a good way to go about it and if so what Environment Variable
>>
> should
> 
>>>I be looking at to return a path I can use...
>>>DOCUMENT_ROOT
>>
>>
>>I don't quite understand what you are asking here?  Can you be more
>>specific??
>>
>>
>>
>>>I have an empty folder on my server under www that is called "uploads"
>>
> and
> 
>>>wanted to upload files there.
>>>Here is the code from the Book "CGI Programming with Perl - it is in
>>
> Chapter
> 
>>>5 - page 99
>>
>>Is this the code you are using, in env_var.cgi??
>>
>>
>>
>>>-PS:btw- What is the CHMOD setting that I should be using with this CGI
>>
> and
> 
>>>"uploads" directory?
>>
>>two things need to be addressed here, both the ownership and the
>>permissions, and they are related.  The web server runs as a particular
>>user, example the "apache" user on some systems with apache, and that
>>user has its own group, example "httpd" on some systems (many others are
>>nobody/nobody, etc.).  The user who is "writing" the file to the disk
>>(aka the web server user) must have write permission to the folder this
>>is usually either accomplished by setting the ownership of the directory
>>to the user and then providing the user write ability, or setting the
>>group of the directory to one of the groups that the web server runs as
>>and then setting group writeable permissions on that directory.  If you
>>are on unix consult -> man chown and -> man chmod for more about these
>>two topics, on windows I can't help you sorry.
>>
>>A cursory (read: 30 second) look over your code didn't show any glaring
>>problems.  Is there an error given? What shows up in the error log for
>>the web server and/or what is printed to the browser? More specific info
>>might better help us diagnose the problems you are having. I attempted
>>to upload a file and got a 500 error which could be a lot of things but
>>should produce an error output in the error log.
>>
>>http://danconia.org
>>
>>
>>
>>>Forgive me I'm new :)
>>>Any help extremely appreciated.
>>>Steve
>>>
>>
> ############################################################################
> 
>>>#########
>>>#!/usr/bin/perl -wT
>>>
>>>use strict;
>>>use CGI;
>>>use Fcntl qw( :DEFAULT :flock );
>>>
>>># use constant UPLOAD_DIR => "/usr/local/bin";
>>>use constant UPLOAD_DIR  => " /www/vargasmedia/uploads/";
>>>use constant BUFFER_SIZE =>16_384;
>>>use constant MAX_FILE_SIZE => 100 * 1_048_576;
>>>use constant MAX_DIR_SIZE => 100 * 1_048_576;
>>>use constant MAX_OPEN_TRIES =>100;
>>>
>>>$CGI::DISABLE_UPLOADS    = 0;
>>>$CGI::POST_MAX           = MAX_FILE_SIZE;
>>>
>>>my $q = new CGI;
>>>$q->cgi_error and error( $q, "Error transferring file: ".
>>
> $q->cgi_error );
> 
>>>my $file       = $q->param( "file" )        || error( $q, "No file
>>>recieved." );
>>>my $filename   = $q->param( "filename" )    || error( $q, "No filename
>>>entered." );
>>>my $fh         = $q->upload( $file );
>>>my $buffer     = "";
>>>
>>>if ( dir_size( UPLOAD_DIR ) + $ENV{CONTENT_LENGTH} > MAX_DIR_SIZE ) {
>>>    error( $q, "Upload directory is full." );
>>>}
>>>
>>># Convert odd ball characters to underscore
>>>$filename =~ s/[^\w.-]/_/g;
>>>if ( $filename =~ /^(\w[\w.-]*)/ ) {
>>>     $filename = $1;
>>>}
>>>else {
>>>     error( $q, "Invalid file name; files must start with a letter or
>>>number." );
>>>}
>>>
>>># open output file, making sure the file name is unique
>>>until ( sysopen OUTPUT, UPLOAD_DIR . $filename, O_CREAT | O_EXCL ) {
>>>    $filename =~ s/(\d*)(\.\w+)$/($1||0) + 1 . $2/e;
>>>    $1 >= MAX_OPEN_TRIES and error( $q, "Unable to save your file." );
>>>}
>>># This is neccessary for non-Unix systems does nothing on UNIX
>>>binmode $fh;
>>>binmode OUTPUT;
>>>
>>># write contents to output file
>>>while ( read($fh, $buffer, BUFFER_SIZE ) ) {
>>>   print OUTPUT $buffer;
>>>}
>>>
>>>close OUTPUT;
>>>
>>>sub dir_size {
>>>   my $dir = shift;
>>>   my $dir_size = 0;
>>>
>>>
>>>   # loop through files and sume the sizes; doesn't decend down subdirs
>>>   opendir DIR, $dir or die "Unable to open $dir: $!";
>>>   while ( readdir DIR ) {
>>>      $dir_size += -s "$dir/$_";
>>>   }
>>>     return $dir_size;
>>>}
>>>
>>>sub error {
>>>   my( $q, $reason ) = @_;
>>>
>>>  print $q->header( "text/html" ),
>>>        $q->start_html( "Error" ),
>>>        $q->h1( "Error" ),
>>>        $q->p( "Your upload was not processed because the following
>>
> error",
> 
>>>"occured: "),
>>>        $q->p( $q->i( $reason )),
>>>        $q->end_html;
>>>     exit;
>>>}
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>
>>
>>
>>--
>>To unsubscribe, e-mail: [EMAIL PROTECTED]
>>For additional commands, e-mail: [EMAIL PROTECTED]
>>
> 
> 
> 



-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to