19/02/2011, 06:26
|
| | | Fecha de Ingreso: mayo-2006 Ubicación: Tingo Maria - Peru
Mensajes: 10
Antigüedad: 18 años, 6 meses 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 |