Esto es algo que puedes hacer ya sea con HTML, JavaScript o PHP, aunque lo ideal es que lo hagas con los tres y, aún más importante, con PHP, puesto que el usuario no puede modificar lo que sucede en el lado del servidor.
En el elemento HTML, puedes usar el atributo
accept
.
Con JavaScript, puedes tomar la extensión del archivo a partir del último punto que es en donde empieza el nombre de la extensión, para lo cual puedes usar los métodos
substr
, para tomar la porción del nombre del archivo en donde está la extensión, y
lastIndexOf
, para indicar el punto desde el cual el método
substr
tomará la parte del nombre que se necesita.
Código Javascript
:
Ver originalvar input = document.querySelector("[type=file]"), //Tomamos al <input type = "file" />
posPunto = input.value.lastIndexOf("."), //Tomamos la posición del último punto
extension = input.value.substr(input.value, posPunto + 1); //Tomamos la extensión
//Como la extensión puede no estar en minúsculas, la convierto con el método 'toLowerCase'
//Una vez convertida a minúsculas, verifico si no es igual a 'pdf'
if (extension.toLowerCase() != "pdf"){
alert("El archivo no es un PDF");
}
Y con PHP, puedes usar las
funciones de FileInfo
.
Saludos