fabriziorocca (Normal User)
Guru
Messaggi: 1162
Iscritto: 22/03/2009
|
Ciao, vorrei creare un servizio di upload fatto in piccolo stile.
Ovvero vorrei fare qualcosa come il servizio Upload e Download di http://antonioserver.altervista.org dove però sia possibile caricare file di tutte le estensioni (tranne *.zip e *.rar) in cui i file non possano superare la dimensione di 15 MB
Finora sono riuscito a fare in php la casella per fare l'upload di file, sono che
1)Non so come bloccare le estensioni pericolose;
2)Non so limitare la dimensione max del file
3)Mi serve una mano a creare la sezioni in cui si vedano tutti i file caricati (e la data e l'ora di caricamento)
|
|
cassin.simone (Member)
Guru
Messaggi: 1051
Iscritto: 03/06/2009
|
Postato originariamente da fabriziorocca:
Ciao, vorrei creare un servizio di upload fatto in piccolo stile.
Ovvero vorrei fare qualcosa come il servizio Upload e Download di http://antonioserver.altervista.org dove però sia possibile caricare file di tutte le estensioni (tranne *.zip e *.rar) in cui i file non possano superare la dimensione di 15 MB
Finora sono riuscito a fare in php la casella per fare l'upload di file, sono che
1)Non so come bloccare le estensioni pericolose;
2)Non so limitare la dimensione max del file
3)Mi serve una mano a creare la sezioni in cui si vedano tutti i file caricati (e la data e l'ora di caricamento) |
Ti aiuto per la terza richiesta:
crea un array dei file della cartella e pubblica, con un while, ogni file. |
|
fabriziorocca (Normal User)
Guru
Messaggi: 1162
Iscritto: 22/03/2009
|
Ok però intendo anche una mano nel codice
|
|
ferruccio94 (Member)
Pro
Messaggi: 135
Iscritto: 07/12/2009
|
1)Non so come bloccare le estensioni pericolose;
2)Non so limitare la dimensione max del file
3)Mi serve una mano a creare la sezioni in cui si vedano tutti i file caricati (e la data e l'ora di caricamento) |
1)- Devi creare un array dove metti le estensioni pericolose, però, io ti consiglio di fare un array con i formati accettati, per trovare il formato dei file caricato puoi usare un explode e un count:
2) - Imposti il peso massimo in una variabile, poi controlli con un if
Es.:
Codice sorgente - presumibilmente Delphi |
<?php $tmp = $_FILES['file']['tmp_name']; //da inserire nella funziona copy() $nome = $_FILES['file']['name']; //nome del file caricato (Es. "prova.png") $size = $_FILES['file']['size']; //peso del file in byte $max_size = 51200; //peso massimo consentito (in questo caso 50KB) $copy = "upload"; //cartella in cui vengono caricati i file $estensione = explode(".", $nome); $control = count($estensione)-1; //serve a trovare l'estensione del file $consentiti = array("png", "mp3", "zip", "rar"); //estensioni caricate, e viene mostrato illink if (in_array($estensione[$control], $consentiti) && $max_size < $size) { //se il file è consentito ed è minore del peso massimo copy($tmp, $copy); //carica il file nella cartella echo "File caricato!"; } else { echo "Il file non è tra i consentiti o è troppo pesante!"; } ?>
|
3) Puoi usare un foreach() e la funziona glob()
Codice sorgente - presumibilmente Delphi |
<?php foreach( glob("upload/*") as $file) { //glob("upload/*") crea un array di tutti file nella cartella "upload", se era glob("*") era per tutti i file dove si trova lo script, se dopo l'asterisco c'è un formato (Es. .png) creava un array di tutti i file .png, stessa cosa se dopo l'asterisco c'era .exe ecc...?> <a href="<?php echo $file; ?>" target="_blank"><?php echo $file; ?></a><br> <?php } //la riga sopra di html e php, mostra un link al file ?>
|
Spero di esserti stato utile |
|
fabriziorocca (Normal User)
Guru
Messaggi: 1162
Iscritto: 22/03/2009
|
|
|
cassin.simone (Member)
Guru
Messaggi: 1051
Iscritto: 03/06/2009
|
Aggiungi un controllo per vedere se l'utente ha mandato qualcosa...
|
|
fabriziorocca (Normal User)
Guru
Messaggi: 1162
Iscritto: 22/03/2009
|
Si ma ho linkato la pagina per caricare i file e come vedi si autoinceppa
|
|
ferruccio94 (Member)
Pro
Messaggi: 135
Iscritto: 07/12/2009
|
Postato originariamente da fabriziorocca:
Si ma ho linkato la pagina per caricare i file e come vedi si autoinceppa |
Posta il codice di index.php... |
|
fabriziorocca (Normal User)
Guru
Messaggi: 1162
Iscritto: 22/03/2009
|
Codice sorgente - presumibilmente Delphi |
<?php $tmp = $_FILES['file']['tmp_name']; //da inserire nella funziona copy() $nome = $_FILES['file']['name']; //nome del file caricato (Es. "prova.png") $size = $_FILES['file']['size']; //peso del file in byte $max_size = 51200; //peso massimo consentito (in questo caso 50KB) $copy = "http://fabrizioroccapc.altervista.org/prove/upload"; //cartella in cui vengono caricati i file $estensione = explode(".", $nome); $control = count($estensione)-1; //serve a trovare l'estensione del file $consentiti = array("png", "mp3", "zip", "rar"); //estensioni caricate, e viene mostrato illink if (in_array($estensione[$control], $consentiti) && $max_size < $size) { //se il file è consentito ed è minore del peso massimo copy($tmp, $copy); //carica il file nella cartella echo "file caricato!"; } else { echo "Il file non è tra i consentiti o è troppo pesante!"; } ?>
|
|
|