Newsgroup: it.lavoro.professioni.webmaster
Titolo: Validare un file in upload

Ciao a tutti,
è la prima volta che mi trovo ad affrontare questo problema e non so come 
procedere.
In pratica un utente può caricare un file jpg in una directory di upload. 
Qui capita che il file viene caricato ma se contiene caratteri non permessi 
la sua visualizzazione risulta corrotta.
Ecco che vorrei sapere come validare il nome file al momento dell'invio da 
form.
Spero di aver scritto bene e di essermi spiegata.
Grazie
Giada 

 Spero di aver scritto bene e di essermi spiegata.
Spiegarti ti sei spiegata, peccato che hai dimentacato la cosa piů 
importante ... il linguaggio in cui lavori
Cla!
-- 
http://www.docebolms.org
 :: E-learning open source
Oggi, 6 luglio 2005, mi sento piů Europeo

 Cla!
Ops........ sapevo di aver dimenticato qualcosa........
E' una galleria di immagini in php.
Sò che può essere una domanda  molto vaga..... ma avrei bisogno anche solo 
di qualche link per documentarmi.
Grazie
Giada 

 
ti crei i filtri su $_FILES['userfile']['name']
velocemente da google...
http://www.goldenweb.it/manuale_php/features.file-upload.php
ciao



Io solitamente faccio così:
$dir_up="/cartella/";
$toglimi=array(',','\'','\"',':',';','?','!');//caratteri tolti 
 
move_uploaded_file($_FILES['userfile']['tmp_name'], $dir_up .
str_replace($toglimi,"",stripslashes($_FILES['userfile']['name']))) 
Anche se sarebbe meglio usare le espressioni regolari.
in $toglimi metti tutti i caratteri che vuoi che non appaiano nel
nome.
Ma non capisco in che senso alteri la visualizzazione dell'immagine un
carattere inserito nel nome. 
-- 
Per rispondermi togli il cappello

Pattinando sui suoi ghiacciati pensieri Gialla scrisse:

rinomina comunque il file con un id o un nome convenzionale creato da 
te senza caratteri speciali e tagli la testa al toro
-- 
Symbel
http://www.symbel.it
 [website] - 
http://www.spifferi.it
 [blog] - 
http://www.fotorep.it
 [fotoblog]
E' meglio essere ottimisti ed avere torto piuttosto che pessimisti ed 
avere ragione.


Nel senso che poi il file che mostra le immagini mi taglia i nomi dei file 
se incontra caratteri illegali.
Così preferisco (credo) sia meglio non permetterne il caricamento.
In pratica il form non ha molto da dire:
echo "<form action='upload&ls=$limitsize' enctype='multipart/form-data' 
method='POST'>
<input type='hidden' name='MAX_FILE_SIZE' value='$maxfilesize'>
<input type='hidden' name='yn' value='$book'>
<br><input class=input name='datei' type='file' size='30'><br>
<input type=submit value='Invia file'></form>";
Rinominare il file caricato non va bene perchè il nome file mi è utile.
Grazie
Giada 

 Rinominare il file caricato non va bene perchè il nome file mi è utile.
Ciao, guarda che rinominarlo è una pratica diffusissima, in alternativa, 
quando non gliene permetti il caricamento dì all'utente che deve 
rinominarlo senza spazi e caratteri strani
Ciao
Cla!
-- 
http://www.docebolms.org
 :: E-learning open source
Oggi, 6 luglio 2005, mi sento più Europeo

 Cla!
Ah si?
Sorry.......non lo sapevo...
Puoi/potete suggerirmi come fare?
Spero che non sia piů complicato di quanto mi permettono le mie (ridotte) 
conoscenze :-))
Grazie
Giada 

 form.
Mi pare di capire che i file in questione vengono caricati via HTTP.
Il nome del file sul sistema del browser potrebbe contenere
caratteri non ASCII. In tal caso le specifiche HTML 4.01 e
il documento RFC 1867 richiedono che il nome del file venga
codificato secondo lo schema dell'RFC 2047, par. 4.2. Ad esempio,
se il nome del file è "Caffè Brilli.jpg" dovrebbe essere reso come
"=?ISO-8859-15?Q?Caff=E8_Brilli=2Ejpg?=". Lato server dovremo sempre
controllare la presenza di questa codifica ed eseguire la conversione
opportuna nel charset usato dal programma.
ATTENZIONE! Nessun browser sembra rispettare questo requisito, e i nomi
dei file vengono restituiti usando il charset della pagina che contiene
il form. Se il nome del file contiene caratteri che non sono previsti
nel charset della pagina, allora questi caratteri vengono codificati
nella forma "&#xxx;" dove "xxx" è il codice decimale Unicode del
carattere. Purtroppo il carattere "&" stesso non viene codificato, sicché
lato server non è possibile riconoscere il problema in modo certo. Provato
con Mozilla 1.7.3 e Internet Explorer 6.0. Forse è più semplice così.
Inoltre il nome del file potrebbe contenere caratteri specifici del
sistema operativo del client, ma non adatti per un nome di file sul
server. Ad esempio, sul file system di tipo Unix i caratteri ASCII "/"
e il codice ASCII 0 sono vietati, mentre i nomi di file "." e ".." sono
riservati. Occorre quindi fare attenzione nel sanificare il nome del file
fornito qualora lo si voglia salvare sul server. Meglio sarebbe salvare
il nome del file originale così come fornito, ad esempio nel data base,
e poi salvare il file usando un nome adatto generato all'uopo rispettando
le convenzioni del file system del server.
(tratto da: 
http://www.icosaedro.it/articoli/form.html#uploaddifile
 )
Ciao,
 ___ 
/_|_\  Umberto Salsi
\/_\/  
www.icosaedro.it