Tengo un formulario de carga y estoy verificando el tamaño del archivo y el tipo de archivo para limitar el archivo cargado a 2 megabytes y a los tipos de archivo .pdf, .jpg, .gif o .png. Mi objetivo es que se muestre un mensaje de alerta al usuario si infringe una de estas reglas.¿Cómo limitar el tamaño del archivo de tipo de carga de archivos en PHP?
Hay cuatro escenarios:
- correcta Tamaño/tipo correcto (de trabajo)
- correcta Tamaño/tipo incorrecto (de trabajo)
- INCORRECTO Tamaño/tipo correcto (no trabajar)
- INCORRECTO Tamaño/INCORRECTO Tipo (no funciona)
Con mi código actual, siempre muestra el mensaje "tipo" incorrecto cuando el tamaño del archivo es mayor a 2 megabytes (n. ° 4), incluso si el tipo de archivo es correcto (n. ° 3).
¿Alguna idea de por qué?
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);
}
}
lo siento, que no era una representación exacta. la alerta no se invoca si el archivo se ha cargado realmente. pregunta actualizada – Michael
¿Está 'die()' ing o 'exit()' ing después del 'header()' o su código termina después de esa instrucción if? –
lo siento, estoy tratando de resumir. llama a la función store_uploaded_file(), que realiza otras acciones en la página. el código no termina después de la carga exitosa. – Michael