¿Como evitar subir archivos .sql desde formulario? buenos días:
tengo un formulario que permite la subida de archivos menores a 2MB con extensión pdf, pero el problema es que si trato de subir un .sql o un pdf por ejemplo de 5 MB el servidor lo procesa, pero no lo sube, sin embargo se me pierden todos los valores del formulario y no encuentro la manera de hacer que le indique un mensaje al usuario de que no ha sido posible subir ese archivo.
he visto los archivos log del apache y me dice ( POST Content-Length of 50845054 bytes exceeds the limit)
he leido un poco sobre algunas directivas a traves del .htaccess para prevenir o bloquear extensiones de archivos
mi archivo es el siguiente
<html>
<body>
<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post" enctype="multipart/form-data">
<label for="file">Sube un archivo:</label>
<input type="file" name="archivo" id="archivo" />
<input type="submit" name="boton" value="Subir" />
</form>
<div class="resultado">
<?php
if(isset($_POST['boton'])){
// Hacemos una condicion en la que solo permitiremos que se suban imagenes y que sean menores a 20 KB if ((($_FILES["archivo"]["type"] == "application/pdf") && ($_FILES["archivo"]["size"] < 20000))) {
//Si es que hubo un error en la subida, mostrarlo, de la variable $_FILES podemos extraer el valor de [error], que almacena un valor booleano (1 o 0).
if ($_FILES["archivo"]["error"] > 0) {
echo $_FILES["archivo"]["error"] . "";
} else {
// Si no hubo ningun error, hacemos otra condicion para asegurarnos que el archivo no sea repetido
if (file_exists("pdfs/" . $_FILES["archivo"]["name"])) {
echo $_FILES["archivo"]["name"] . " ya existe. ";
}
else {
// // Si no es un archivo repetido y no hubo ningun error, procedemos a subir a la carpeta /archivos, seguido de eso mostramos la imagen subida
move_uploaded_file($_FILES["archivo"]["tmp_name"],"pdfs/marginados/" . $_FILES["archivo"]["name"]);
echo "Archivo Subido ";
}
}
} else {
// Si el usuario intenta subir algo que no es una imagen o una imagen que pesa mas de 20 KB mostramos este mensaje
echo "Archivo no permitido o excede el tamaño de:".$_FILES["archivo"]["size"];
}
}
?>
</div>
</body>
</html> Pueden ayudarme a solventar este problema, ya que necesito evitar que no se suban al servidor archivos distintos de la extensión pdf y que sean mayores de 2 mb. |