come faccio in un form PHP a specificare grandezza e tipi di file uplodabili? nelle vostre guide non ho trovato nulla a riguardo...
come faccio in un form PHP a specificare grandezza e tipi di file uplodabili? nelle vostre guide non ho trovato nulla a riguardo...
Nel php c'è la direttiva 'upload_max_filesize' che specifica la dimensione massima di un file in upload. Puoi impostarla in php.ini o nel tuo .htaccess (se hai accesso).
Nella form di upload comunque puoi impostare un attributo nascosto per limitare la dimensione massima:
Per il tipo di file c'è poco da fare: devi caricarlo e controllarlo a mano col PHP (l'attributo 'type' di $_FILES non vale una salciccia: non considerarlo nemmeno).Codice PHP:
<input type="hidden" name="MAX_FILE_SIZE" value="30000" />
grazie, per i tipi non c'è altro? usare quello che tanto gli utenti alle prime armi non aggirerebbero?
mi da errore quando provo a uplodare un file...i codici sono questi:
upload.html:
upload.php:Codice PHP:
<html>
<body>
<center>
<form method="post" action="upload.php" enctype="multipart/form-data">
<input type="hidden" name="MAX_FILE_SIZE" value="3000000" />
<input type="file" name="miofile">
<input type="submit" value="Upload">
</form>
</center>
</body>
</html>
ci sono errori?Codice PHP:
<?PHP
// RECUPERO I PARAMETRI DA PASSARE ALLA FUNZIONE PREDEFINITA PER L'UPLOAD
$cartella = 'http:/7softnews.altervista.org/uploads';
$percorso = $_FILES['miofile']['tmp_name'];
$nome = $_FILES['miofile']['name'];
// ESEGUO L'UPLOAD CONTROLLANDO L'ESITO
if (move_uploaded_file($percorso, $cartella . $nome))
{
print "Upload eseguito con successo";
}
else
{
print "Si sono verificati dei problemi durante l'Upload";
}
?>
Bè, in primis $cartella = 'http:/7softnews.altervista.org/uploads'; è un pò sbagliato e poi non puoi specificare una destinazione con http://, devi specificare una directory (/var/tmp, ./tmp o chi per loro, devi avere una directory nel tuo dominio con accesso di scrittura).
così va bene?
Codice PHP:
<?PHP
// RECUPERO I PARAMETRI DA PASSARE ALLA FUNZIONE PREDEFINITA PER L'UPLOAD
$cartella = '/uploads';
$percorso = $_FILES['miofile']['tmp_name'];
$nome = $_FILES['miofile']['name'];
// ESEGUO L'UPLOAD CONTROLLANDO L'ESITO
if (move_uploaded_file($percorso, $cartella . $nome))
{
print "Upload eseguito con successo";
}
else
{
print "Si sono verificati dei problemi durante l'Upload";
}
?>
Peri i tipi prova:
Codice PHP:
// Verifico se l'immagine è di tipo jpeg o gif
$type=$_FILES['immagine']['type'];
if($type != "image/gif" && $type != "image/pjpeg" && $type != "image/jpeg") {
echo 'L\'immagine deve essere del formato JPEG o GIF.';
}
ma io di formati da consentire ne ho una marea...
poi in che parte del file lo dovrei mettere?
No:
sennò ti manca una slash. Perché il tutto funzioni, la directory 'uploads' deve risiedere nella directory base del tuo dominio e deve essere scrivibile (chmod 0777). Fai un pò di prove...Codice PHP:
$cartella = '/uploads/';
ok, ti farò sapere