Hola, trate de hacer un upload con AJAX+PHP, pero no me funciona. (No me sube la imagen). Siempre me muestra el mensaje (en el div "capa"): "Ocurrió algún error al subir el fichero".
Cuál puede ser problema?
Gracias!
upload.htm Código HTML:
<html>
<head>
<script type="text/javascript" src="libreriaajax.js"></script>
</head>
<body>
<form action="#" onsubmit="FAjax('procesa_upload','capa','archivo='+document.getElementById('archivo').value,'POST'); return false" enctype="multipart/form-data" method="post">
<input type=file name="archivo" id="archivo">
<input type="submit" value="Agregar" id="boton">
<div id="capa">
</div>
</form>
</body>
</html>
libreriaajax.js Código HTML:
/*
*Esta libreria es una libreria AJAX creada por Javier Mellado con la inestimable
*colaboracion de Beatriz Gonzalez.
*descargada del portal AJAX Hispano http://www.ajaxhispano.com
*contacto [email protected]
*
*Puede ser utilizada, pasada, modificada pero no olvides mantener
*el espiritu del software libre y respeta GNU-GPL
*/
function creaAjax(){
var objetoAjax=false;
try {
/*Para navegadores distintos a internet explorer*/
objetoAjax = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
/*Para explorer*/
objetoAjax = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (E) {
objetoAjax = false;
}
}
if (!objetoAjax && typeof XMLHttpRequest!='undefined') {
objetoAjax = new XMLHttpRequest();
}
return objetoAjax;
}
function FAjax (url,capa,valores,metodo)
{
var ajax=creaAjax();
var capaContenedora = document.getElementById(capa);
var boton = document.getElementById('boton');
ajax.open ('POST', url, true);
ajax.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
ajax.send(valores);
ajax.onreadystatechange = function() {
if (ajax.readyState==1) {
capaContenedora.innerHTML="Cargando.......";
boton.disabled=true;
}
else if (ajax.readyState==4){
capaContenedora.innerHTML=ajax.responseText;
boton.disabled=false;
}
}
}
procesa_upload.php Código PHP:
<?
$nombre_archivo = $_FILES['archivo']['name'];
$tipo_archivo = $_FILES['archivo']['type'];
$tamano_archivo = $_FILES['archivo']['size'];
$extensiones = array("image/gif","image/jpeg","image/png");
// Mensajes de errores
if(!(in_array($tipo_archivo, $extensiones)))
$error .= "Extensión no válida";
if ($tamano_archivo > 2097152)
$error .= "Supera los 2Mb";
if(!empty($error)){
echo $error;
}else{
if(move_uploaded_file($_FILES['archivo']['tmp_name'], "../temp/$nombre_archivo")){
echo "Subió correctamente";
}else{
echo "Ocurrió algún error al subir el fichero";
}
}
?>