Oppure

Loading
15/12/09 20:41
fabriziorocca
Ciao, vorrei creare un servizio di upload fatto in piccolo stile.

Ovvero vorrei fare qualcosa come il servizio Upload e Download di 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)
aaa
15/12/09 21:28
cassin.simone
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 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.
aaa
16/12/09 20:24
fabriziorocca
Ok però intendo anche una mano nel codice :rofl:
aaa
16/12/09 21:48
ferruccio94
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.:
<?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()
<?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 :yup:
aaa
17/12/09 14:19
fabriziorocca
Ho provato ma ... dai un occhiata fabrizioroccapc.altervista.org/prove/…
aaa
17/12/09 15:10
cassin.simone
Aggiungi un controllo per vedere se l'utente ha mandato qualcosa...
aaa
17/12/09 15:17
fabriziorocca
Si ma ho linkato la pagina per caricare i file e come vedi si autoinceppa
aaa
17/12/09 15:30
ferruccio94
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...
aaa