Newsgroup: it.comp.www.php
Titolo: nome del file appena 'uploadato'

Ciao a tutti. In rete ho trovato questo script molto bello, che mi 
permette l'upload di un file immagine. Lo script è diviso in 2 pagine. 
La prima è semplice html, dove c'è il modulo di caricamento 
dell'immagine, e la seconda dove c'è lo script vero e proprio. Ve le 
scrivo entrambe:
//la prima pagina:
<form name="form1" enctype="multipart/form-data" method="post" 
action="receve.php">
     <input name="uploadedfile" type="file" id="uploadedfile">
     <input type="hidden" name="max_file_size" value="100000">
     <input type="submit" name="Submit" value="Invia">
</form>
//la seconda pagina:
<?
							/* Scrip Realizzato da Igor in Collaborazione Con
							Web-Works 
http://webworks.altervista.org/
							AlgheroWeb 
http://www.algheroweb.it
							*/
//Carico l'immagine grande sul nostro server
if($uploadedfile<>"none") {
   if(!copy($uploadedfile,"images/big/$uploadedfile_name")) {//posso 
modicare il percorso dell'immagine da qui
    print("Errore nel caricamento dell'immagine.<br>");
   }
   else {
     print("Caricamento immagine eseguito correttamente");
   }
}
//Inizio il resize
$fullsize=imagecreatefromjpeg("images/big/$uploadedfile_name");//Prelevo 
l'immagine da dove l'ho salvata pocanzi
$fullsize_height=imagesy($fullsize);
$fullsize_width=imagesx($fullsize);
$thumb_width=312;//dimensione della larghezza l'altezza viene fatta in 
proporzione
$thumb_height=floor($fullsize_height/($fullsize_width/$thumb_width));
$thumb=imagecreatetruecolor($thumb_width,$thumb_height);
imagecopyresampled($thumb,$fullsize,0,0,0,0,$thumb_width,$thumb_height,$fullsize_width,$fullsize_height);
imagedestroy($fullsize);
imagejpeg ($thumb,"images/smoll/$uploadedfile_name");//posso modivicare 
il percorso dell'immagine piccola da qui
imagedestroy($thumb);
?>
Ora, vorrei sapere come devo fare per 'catturare' il nome del file che 
l'utente sta caricando, in modo che poi possa utilizzarlo per la sua 
'scheda'. Lo scopo è quello di dare un volto all'utente facendogli 
caricare un'immagine, che viene poi ridimensionata e impostata nella 
propria scheda. Io pensavo che sarebbe bastato prendere come argomento 
l'id del campo di testo della prima pagina così:
$imageName= $_POST[uploadedfile];
e che qui il valore sarebbe stato il nome del file, invece a video non 
stampa nulla.
Come posso fare per memorizzare nel DB il nome del file completo di 
percorso nella cartella 'smoll' per riutilizzarlo poi nella 
visualizzazione della scheda dell'utente?
Grazie a tutti per la pazienza e l'eventuale aiuto.
Ciao, Merlink

 Ciao, Merlink
Ciao a tutti di nuovo. Ho risolto così leggendo in un post precedente 
che mi era sfuggito:
$_FILES ["file"]["name"] #con questo catturo il nome del file
Grazie a tutti ugualmente e tanti Auguri di Buone Feste!!
Ciao, Merlink.

Merlink ha scritto:

Scusate se assillo (spero di no) però ho ancora un piccolo problerma:
se scrivo:
$sqlInsertImage= mysql_query("INSERT INTO uploadedfile (nomefile, data, 
autore ) VALUES ('".$_FILES ["file"]["name"]."', NOW(), 'Utente1')") or 
die ("ERRORE: ".mysql_error());
Il procedimento me lo fa correttamente, ma non mi salva il nome del file 
nel DB, il resto invece lo memorizza correttamente. Sarà perchè è un 
array? se è per questo, come devo fare per memorizzare il nome del file 
nel DB? Nella visualizzazione della pagina lo vedo correttamente il nome..
Grazie a tutti di nuovo.

 nel DB? Nella visualizzazione della pagina lo vedo correttamente il nome..
Come stampi il nome file nella pagina ?

suppaman ha scritto:

print " il file ( ".$_FILES ["file"]["name"]." ) è stato caricato 
correttamente." ;

 if($uploadedfile<>"none") {
[etc]
questo script e' obsoleto, scorretto ed e' un caso che ti funzioni
cerca qualcosa di meglio e che non si appoggi al fatto che le
register_global sono ad on

 
Eccomi di nuovo. Allora, ho risolto cercando nelle righe di codice dello 
script qualcosa che potesse risultarmi utile, e ho trovato
$uploadedfile_name
Questo contiene il nome del file. Infatti se metto questa variabile da 
memorizzare per il nome del file, nel DB, me lo salva correttamente. Fin 
qui tutto bene, il problema è risolto. Ma...(c'è sempre un ma...:-p) 
qualcuno sarebbe così cortese da spiegarmi cosa ho fatto?
In particolare, visto il codice della seconda pagina, essendo che non 
l'ho fatto io, non riesco a capire dove salta fuori questa variabile. 
Nel senso, non  essendo dichiarata da nessuna parte, come sa, php, che 
valore assegnare a "$uploadedfile_name"? Fino ad $uploadedfile c'ero 
arrivato, era il nome del campo di testo usato nella prima pagina col 
suffisso $ per la variabile di php senza usare $_POST[uploadedfile] 
(versione che preferisco). C'è qualche anima pia che mi può spiegare? mi 
piace capire quello che faccio anche quando non è un codice non scritto 
da me, così imparo. Grazie mille a tutti. Ciao!

 
Non so perchč lo chiami obsoleto, scorretto lo č senz'altro visto in 
fatto di sicurezza non č il massimo. Hai qualche indicazione di uno 
script che mi faccia la stessa funzione? Al massimo potrei modificarlo 
cosě, dimmi se ti piace di piů:
$fileCaricato = $_POST[uploadedfile];
//Carico l'immagine grande sul nostro server
if(($fileCaricato!="") && 		
	if(!copy($fileCaricato,"images/big/$fileCaricato_name")) ){//posso 
modicare il percorso dell'immagine da qui
    print("Errore nel caricamento dell'immagine.<br>");
   }
   else {
   	$sqlInsertImage=mysql_query("
   	INSERT INTO uploadedfile (nomefile, data, autore ) 	
   	VALUES ('$fileCaricato_name', NOW(), 'Logan')")
   	or die ("ERRORE: ".mysql_error());
     //print("Caricamento immagine ( ".$_FILES 
["fileCaricato"]["name"]."  ) eseguito correttamente");
     print"Immagine: <br>$fileCaricato_name";
   }
}
//Inizio il resize
$fullsize=imagecreatefromjpeg("images/big/$fileCaricato_name");//Prelevo 
l'immagine da dove l'ho salvata pocanzi
$fullsize_height=imagesy($fullsize);
$fullsize_width=imagesx($fullsize);
$thumb_width=312;//dimensione della larghezza l'altezza viene fatta in 
proporzione
$thumb_height=floor($fullsize_height/($fullsize_width/$thumb_width));
$thumb=imagecreatetruecolor($thumb_width,$thumb_height);
imagecopyresampled($thumb,$fullsize,0,0,0,0,$thumb_width,$thumb_height,$fullsize_width,$fullsize_height);
imagedestroy($fullsize);
imagejpeg ($thumb,"images/smoll/$fileCaricato_name");//posso modificare 
il percorso dell'immagine piccola da qui
imagedestroy($thumb);
Non l'ho testato ma dovrebbe andar bene. Suggerimenti?

 $uploadedfile_name
Stai facendo cabotaggio con la nebbia. Ogni tanto vedi la costa, ma tra
un po' naufraghi.
www.php.net
 -> Documentation -> File upload
Stai usando mezzo codice nuovo, mezzo obsoleto, sistemi insicuri,
register_globals a on (deprecate da 3 anni), copy dove non dovresti,
ecc.
Leggiti il manuale e vedrai che e` tutto molto semplice.
Bye.