Gracias amigos, ya había visto aquel tema. Pero se me complica adaptarlo a mi código.
Verán les pondre una manera que a mi parecer es más sencilla para validar extenciones de archivos, yo la hice y por ser nuevo en esto uso código mas simple.
Además que son menos archivos y menos lineas.
validador.php
Código PHP:
Ver original<?php
$imageFile = $_POST['imageFile'];
if($imageType == "jpg" || $imageType == "gif" || $imageType == "png" || $imageType == "bmp"){ echo "1"; } else { echo "2"; }
?>
archivo html
Código HTML:
Ver original<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script type="text/javascript" language="javascript"> //Creo objeto XMLHTTPREQUEST
function nuevoAjax(){
var xmlhttp=false;
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
xmlhttp = false;
}
}
if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
xmlhttp = new XMLHttpRequest();
}
return xmlhttp;
}
//Valido extencion de la imagen
function validar(){
var ajax = nuevoAjax(),
imagen = document.getElementById('imageFile').value;
function updateTipsAlert(t){
alert(t);
return false;
}
function updateTips(t){
document.getElementById('validates').innerHTML = t;
}
if(imagen.length <= 0) { updateTips('Debes escoger un archivo'); }
else {
ajax.open("POST", "validador.php",true);
ajax.onreadystatechange=function() {
if (ajax.readyState==4) {
if(ajax.responseText==2) {
updateTipsAlert('El formato no es valido');
//Creo un nuevo campo file
tagDiv = document.createElement('div');
tagDiv.setAttribute("style","position:absolute; top:0px; left:0px; width:148px; height:20px; background:url(http://midominio.com/transparente.gif); background-repeat:repeat;");
control = document.createElement("input");
control.setAttribute("type", "file");
control.setAttribute("name","imageFile");
control.setAttribute("id","imageFile");
control.setAttribute("onchange","validar();");
//Borro el campo file anterior
document.getElementById('validateTips').innerHTML = "";
document.getElementById('validateTips').appendChild(tagDiv);
document.getElementById('validateTips').appendChild(control);
}
}
}
}
ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
ajax.send("imageFile="+imagen);
}
<div id="validateTips" style="position:relative;"> <div style="position:absolute; top:0px; left:0px; width:148px; height:20px; background:url(http://midominio.com/transparente.gif); background-repeat:repeat;"></div> <input type="file" name="imageFile" id="imageFile" onchange="validar();" />
Espero que se entienda, no lo he organizado pero lo he probado y funciona.
Que opinan.
Saludos.