Files correlati : Ricompilazione Demo : [ ] Commento : Modifiche di marco git-svn-id: svn://10.65.10.50/trunk@8858 c028cbd2-c16b-5b4b-a496-9718f37d4682
		
			
				
	
	
		
			129 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Perl
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			129 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Perl
		
	
	
		
			Executable File
		
	
	
	
	
| #!/usr/bin/perl -w
 | |
| 
 | |
| # Copyright (c) 1996 Steven E. Brenner
 | |
| # $Id: upload.pl,v 1.1 2000-03-02 15:26:30 luca Exp $
 | |
| 
 | |
| require 5.001;
 | |
| use strict;
 | |
| require "./cgi-lib.pl";
 | |
| require "./HyperNews/.scripts/check_mod_user.pl";
 | |
| 
 | |
| MAIN: 
 | |
| {
 | |
|   my (%cgi_data,  # The form data
 | |
|       %cgi_cfn,   # The uploaded file(s) client-provided name(s)
 | |
|       %cgi_ct,    # The uploaded file(s) content-type(s).  These are
 | |
|                   #   set by the user's browser and may be unreliable
 | |
|       %cgi_sfn,   # The uploaded file(s) name(s) on the server (this machine)
 | |
|       $ret,       # Return value of the ReadParse call.       
 | |
|       $user,      # User name from environment
 | |
|       $course,    # Course name selected from user database
 | |
|       $basedir,   # Base directory for download (per evitare i cheats)
 | |
|       $fn,        # File per le note dell'utente
 | |
|       $fl,        # nome del file in locale
 | |
|       $xn,
 | |
|       $ccc,
 | |
|       $i1,
 | |
|       $i2
 | |
|      );
 | |
| 
 | |
|   # When writing files, several options can be set..
 | |
|   # Spool the files to the /tmp directory
 | |
|   #$basedir = "../upload/";
 | |
|   $basedir = "../corso_";
 | |
|   $user = $ENV{'REMOTE_USER'};
 | |
|   $course = get_course($user);
 | |
|   $cgi_lib::writefiles = "/tmp";   
 | |
| 
 | |
| 
 | |
|   $basedir = "$basedir$course/upload/";
 | |
|   $user = "$basedir$user";
 | |
|   if (!-d $user) {
 | |
|     mkdir $user, 0755;
 | |
|   }
 | |
| 
 | |
|   $cgi_lib::writefiles = $user;
 | |
| 
 | |
|   # Limit upload size to avoid using too much memory
 | |
|   $cgi_lib::maxdata = 500000; 
 | |
| 
 | |
|   # Start off by reading and parsing the data.  Save the return value.
 | |
|   # Pass references to retreive the data, the filenames, and the content-type
 | |
|   $ret = &ReadParse(\%cgi_data,\%cgi_cfn,\%cgi_ct,\%cgi_sfn);
 | |
| 
 | |
|   # A bit of error checking never hurt anyone
 | |
|   if (!defined $ret) {
 | |
|     &CgiDie("Errore in lettura parametri del CGI");
 | |
|   } elsif (!$ret or !defined $cgi_data{'upfile'} or !defined $cgi_data{'note'}) {
 | |
| 	# Legge il file upload.htm dal direttorio dei servizi
 | |
| 	# e lo restituisce così com'è
 | |
| 	print "Content-type: text/html\n\n";
 | |
| 	$xn = "../servizi/upload.htm";
 | |
| 	open (FKL, $xn);
 | |
| 	while (!eof(FKL)) {
 | |
| 		$ccc = getc(FKL);
 | |
| 		print $ccc;
 | |
|   	} 
 | |
| 	close (FKL);
 | |
| 	exit 1;
 | |
|   } 
 | |
| 
 | |
|   if ($user eq '') {
 | |
|     &CgiDie("Utente non autorizzato\n",
 | |
|             "Si prega di effettuare ancora la validazione dell'utente.\n");
 | |
|   }
 | |
| 
 | |
|   if (!-d $basedir) {
 | |
|     &CgiDie("Impossibile trovare il direttorio base per l'upload\n",
 | |
|             "Contattare il docente.\n");
 | |
|   }
 | |
|   
 | |
|   if ($cgi_cfn{'upfile'} eq '') {
 | |
|     &CgiDie("Nome file non valido\n",
 | |
|             "Assicurarsi di aver fornito un nome file corretto.\n");
 | |
|   } 
 | |
|   
 | |
|   $fn = ">>$user/note.txt";
 | |
|   open (FILE, $fn) || &CgiDie("Impossibile aprire il file delle note $fn\n");
 | |
|   binmode (FILE);  # write files accurately
 | |
|   print FILE "---- Nota ----\n";
 | |
|   print FILE $cgi_data{'note'} ;
 | |
| #  print FILE "\n---- Fine nota ----\n";
 | |
|   print FILE "\n";
 | |
|   close (FILE);
 | |
|  
 | |
|   $i1 = rindex($cgi_cfn{'upfile'}, "\\");
 | |
|   $i2 = rindex($cgi_cfn{'upfile'}, "/");
 | |
|   if ($i2 > $i1) {
 | |
|     $i1 = $i2;
 | |
|   } 
 | |
|   $fl = "$user/";
 | |
|   if ($i1 > -1) {
 | |
|     $fl .= substr($cgi_cfn{'upfile'}, $i1+1);
 | |
|   } else {
 | |
|      $fl .= $cgi_cfn{'upfile'};
 | |
|     }
 | |
| 
 | |
|   # Cambia nome
 | |
|   rename ($cgi_sfn{'upfile'}, $fl) ;
 | |
| 
 | |
|   # Now print the page for the user to see...
 | |
|   print &PrintHeader;
 | |
|   print &HtmlTop("Invio file");
 | |
| 
 | |
| 
 | |
|   print <<EOT;
 | |
| Il file <i>$cgi_cfn{'upfile'}</i> e' stato ricevuto.<br>
 | |
| <b>Grazie.</b>
 | |
| <hr>
 | |
| EOT
 | |
| 
 | |
|   print &HtmlBot;
 | |
| 
 | |
| 
 | |
|   # The following lines are solely to suppress 'only used once' warnings
 | |
|   $cgi_lib::writefiles = $cgi_lib::writefiles;
 | |
|   $cgi_lib::maxdata    = $cgi_lib::maxdata;
 | |
| 
 | |
| }
 |