He podido validar las cargas de archivos y solo se pueden cargar archivos jpg y gif.
con código como este:
<script> function validate() { var filename=document.getElementById('file').value; var extension=filename.substr(filename.lastIndexOf('.')+1).toLowerCase(); //alert(extension); if(extension=='jpg' || extension=='gif') { return true; } else { alert('Not Allowed Extension!'); return false; } } </script>si cargo un archivo con el nombre "tesFile.php.jpg", el archivo se carga correctamente. Aunque el archivo no es una imagen.
¿Cómo lo valido con javascript o PHP?
Puedes hacerlo en php con el tipo mime del archivo.
$file = $_FILES['file']; $mime = get_mime_type($file['tmp_name']); //return eg 'image/png' //check if mime is valid function get_mime_type (string $path): string|false { if (!function_exists ('finfo_open')) { return FALSE; } if (!$finfo = finfo_open (FILEINFO_MIME_TYPE)) { return FALSE; } $mime_type = finfo_file ($finfo, $path); finfo_close ($finfo); return $mime_type; } <input type="file" name="myImage" accept="image/png, image/gif, image/jpeg" />Validación de tipo de imagen en PHP:
Consulte este enlace: https://www.w3schools.com/php/php_file_upload.asp
$archivo_objetivo = $dir_objetivo . nombrebase($_FILES["fileToUpload"]["name"]); $subirOk = 1; $imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg" && $imageFileType != "gif" ) { echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed."; $uploadOk = 0; }