Ho un modulo di caricamento e sto verificando la dimensione del file e il tipo di file per limitare il file caricato a 2 megabyte e tipi di file .pdf, .jpg, .gif o .png. Il mio obiettivo è avere un messaggio di avviso visualizzato all'utente se viola una di queste regole.Come limitare la dimensione del file di tipo di caricamento file in PHP?
ci sono quattro scenari:
- formato corretto/tipo corretto (di lavoro)
- formato corretto/Tipo sbagliato (di lavoro)
- ERRATO Dimensioni/tipo corretto (non funzionante)
- Tipo NON CORRETTO/NON CORRETTO (non funzionante)
Con il mio codice corrente, visualizza sempre il messaggio di "tipo" errato quando la dimensione del file è maggiore di 2 megabyte (# 4), anche se il tipo di file è corretto (# 3).
Qualche idea, perché?
if (isset ($_FILES['uploaded_file'])) {
$file_size = $_FILES['uploaded_file']['size'];
$file_type = $_FILES['uploaded_file']['type'];
if (($file_size > 2097152)){
$message = 'File too large. File must be less than 2 megabytes.';
echo '<script type="text/javascript">alert("'.$message.'");</script>';
}
elseif (
($file_type != "application/pdf") &&
($file_type != "image/jpeg") &&
($file_type != "image/jpg") &&
($file_type != "image/gif") &&
($file_type != "image/png")
){
$message = 'Invalid file type. Only PDF, JPG, GIF and PNG types are accepted.';
echo '<script type="text/javascript">alert("'.$message.'");</script>';
}
else {
store_uploaded_file($id);
}
}
dispiace, che non era una rappresentazione accurata. l'avviso non viene chiamato se il file viene effettivamente caricato. domanda aggiornata – Michael
Sei 'die()' ing o 'exit()' ing dopo il 'header()' o il tuo codice termina dopo quella istruzione if? –
scusa, sto cercando di riassumere. chiama la funzione store_uploaded_file(), che esegue altre azioni sulla pagina. il codice non termina dopo il caricamento riuscito. – Michael