Ver Mensaje Individual
  #3 (permalink)  
Antiguo 19/02/2011, 06:26
Avatar de Johnnyhp
Johnnyhp
 
Fecha de Ingreso: mayo-2006
Ubicación: Tingo Maria - Peru
Mensajes: 10
Antigüedad: 18 años
Puntos: 1
Respuesta: Ayuda con xajax y UPLOAD imagenes

Hola

Tambien trabajo con xajax y lo he trabajado de la siguiente forma, espero que te sirva:

JS:
<script>
$(document).ready(function() {
$(document).ready(function() {
$("#btnImagen").button();
var button = $("#btnImagen"), interval;
new AjaxUpload("#btnImagen", {
action: "upload.php?opcion=imagen",
onSubmit : function(file , ext){
if (! (ext && /^(jpg|png|jpeg|gif|rar|zip|bmp)$/.test(ext))){
// extensiones permitidas
alert("Error: Solo se permiten imagenes");
// cancela upload
return false;
} else {
button.text("Cargando");
this.disable();
}
},
onComplete: function(file, response){
if(response=="1"){
alert("Se adjunto correctamente");
button.text("Examinar");
this.enable();
$("#imagen").val(file);
}else{
alert("Error:\n"+response);
button.text("Examinar");
this.enable();
}
}
});});

});
</script>

HTML:
<input type="text" name="imagen" id="imagen" readonly="readonly"></td><td><input type="button" id="btnImagen" name="btnImagen" value="Examinar" />

PHP:

<?php
switch ($_REQUEST['opcion'])
{
case'plano':
$uploaddir = 'archivos/articulo/plano/';
break;
case'imagen':
$uploaddir = 'archivos/articulo/imagen/';
break;
}
$uploadfile = $uploaddir .basename($_FILES['userfile']['name']);
try{
if(!file_exists($uploadfile))
{
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)){
chmod ($uploadfile,0777);
echo "1";
}
}
else
{
return 0;
}
}
catch(Exception $e)
{
echo $e->getMessage();
}
?>

Este script no tiene problemas al trabajar dentro del formulario que envias por xajax, trabaja de manera independiente, pero te garantiza el upload del archivo.

Lo que hace este código es utiliza una caja de texto y un boton que simula al input file el boton llama al examinar escoges el archivo y lo sube al directorio que lo puedes editar en el php, seguidamente una vez subido el archivo escribe el nombre en la caja de texto para que envies solo el nombre por el xajax y puedas almancenar en la BD

Espero haberte ayudado en algo, aya necesitaras la libreria AjaxUpload.2.0.min.js

saludos