Bene! Ci siamo divertiti con la teoria, ma la pratica purtroppo è tutta un'altra cosa...
Grazie per le info ma io non ho la capacità e sopratutto il tempo per provare a fare un lavoro del genere, dovrei riscrivere tutto e conoscendo pochino il PHP e pochino il Perl rischierei di perderci dei mesi e poi non risolvere nulla
Pertanto ritorno sui miei passi e sono determinato a trovare una soluzione integrando lo script Cgi che ho già funzionante.
DOMANDA:
Tu saresti in grado di fare le modifiche che mi servono?
O conosci qualche esperto?
Per uno esperto sono poi alla fine poche righe di codice... O no?
Topix
Il forum e` una discussionie pubblica. Mi permetto pertanto di trascrivere qui la tua domanda (che ho ricevutoin pvt) e rispondere pubblicamente.
Tra l'altro forse qualcuno che puo` risponderti qui c'e`: io sarei in grado di fare il tutto, se fosse per me, ma dovrei studiare un bel po' di cose, per cui non credo di essere in grado di aiutarti oltre.
Gli esperti ogni tanto passano di qui. Ma essendo questo un forum un po' "tranquillo", non passano troppo spesso.
Forse sono poche righe di codice, ma per farle occorre studiarsi tutto il resto del codice gia` presente, e questo non e` una cosa da farsi in pochi minuti.
Se pensi di aver trovato i punti dove inserire le modifiche, puoi postarli qui e poi vediamo.
Intanto quel pezzetto di codice postato, legge il nome del file (specificato nel campo immagine) e toglie il primo pezzo, fino all'ultimo slash (se presente); poi lo attacca al path defintito nella variabile e apre il file con quel nome.
NON fa il controllo se il file esiste gia` (se esiste lo sovrascrive)
NON fa il controllo dell'estensione
NON fa l'upload (o comunque non salva il file - probabilmente viene fatto subito dopo)
per il controllo dell'estensione potresti inserire:
codice:
$upload_dir = "../../dovelametto";
$query = new CGI;
$filename = $query->param("immagine");
$filename =~ s/.*[\/\\](.*)/$1/;
$validExt = ".jpg..jpeg.gif.png.";
$filename =~ /.*(\..*)/; /* in $1 c'e` l'estensione */
$estens = $1.".";
$validExt =~ /($estens)/;
die 'estensione non riconosciuta' if(!length($1)); /* si puo` ottimizzare, ma non ricordo */
open UPLOADFILE, ">$upload_dir/$filename";
$upload_filehandle = $query->upload("immagine");
E` da testare, e non solo per gli errori di sintassi. E` un po' ormai che non programmo piu` in Perl, e sono molto arrugginito.
Per il controllo della lunghezza del file, non si puo` fare fino a che il file non e` scaricato, a meno di non riuscire ad interpretare i primi byte (ma su come interpretarli, devi cheidere in grafica, se sanno cosa e` contenuto nei primi byte di ciascun tipo di file).
E con il solo controllo dell'estensione, e` facile fregarti (e anche inviarti dei codici maliziosi).