Foros del Web » Programando para Internet » PHP »

move_uploaded_file() AJAX

Estas en el tema de move_uploaded_file() AJAX en el foro de PHP en Foros del Web. estoy tratando de adaptar a mis necesidades un codigo de caricatos para poder subir archivos, lo que me importa es que exista un tiempo para ...
  #1 (permalink)  
Antiguo 22/02/2008, 12:43
Avatar de jorgedx  
Fecha de Ingreso: junio-2005
Ubicación: Chile, Los Andes
Mensajes: 406
Antigüedad: 18 años, 10 meses
Puntos: 4
move_uploaded_file() AJAX

estoy tratando de adaptar a mis necesidades un codigo de caricatos

para poder subir archivos, lo que me importa es que exista un tiempo para que el usuario vea que hay algo haciendose en este caso subiendo un archivo
pero la unica complicacion que tengo es que al llamar a mi algoritmo de php por medio de ajax la funcion

Código PHP:
move_uploaded_file() 
no me funciona, por sus característica, y he tratado con copy o rename pero me da complicaciones con el safe mode de php

procesa el archivo subido a travez del formulario
Código PHP:
<?
$nombre_archivo 
$_FILES['archivo']['name'];
$tipo_archivo $_FILES['archivo']['type'];
$tamano_archivo $_FILES['archivo']['size'];
$file $_FILES['archivo']['tmp_name'];
$nota=$_POST['nota'];
$error=$_FILES['archivo']['error'];
?>

......


carga = new Array();

cargaActual = 0;
carga[0] = new actua("sube3.php?nota=<?echo urlencode($nota)?>&nombre_archivo=<?echo urlencode($nombre_archivo)?>&tipo_archivo=<?echo urlencode($tipo_archivo)?>&tamano_archivo=<?echo $tamano_archivo?>&file=<?echo urlencode($file)?>&error=<? echo $error?>", "capa1");



......
sube3.php
Código PHP:

$nota 
$_GET["nota"];


//datos del arhivo
$nombre_archivo $_GET['nombre_archivo'];
$tipo_archivo $_GET['tipo_archivo'];
$tamano_archivo $_GET['tamano_archivo'];
$file $_GET['file'];
$error $_GET['error'];

 echo 
$nombre_archivo.$tipo_archivo.$tamano_archivo.$file.$error;


//compruebo si las características del archivo son las que deseo

if (!((strpos($tipo_archivo"gif") || strpos($tipo_archivo"jpeg") || strpos($tipo_archivo"pdf") || strpos($tipo_archivo"png")) && ($tamano_archivo 1000000))) {
    
$msg="La extensión o el tamaño de los archivos no es correcta. ";
}else{

    if (
move_uploaded_file($file"../archivos" )) {
        
$msg="El archivo ha sido cargado correctamente.";
    }else{
       
$msg="Ocurrió un error inesperado al subir el fichero. No pudo guardarse.";
    }
   
    if (
move_uploaded_file($file"../archivos")){
       
$msg="El archivo ha sido cargado correctamente.";
    }else{
       
$msg="Ocurrió un error inesperado al subir el fichero. No pudo guardarse.";
    }
   
}



echo 
$msg
agradeceria alguna idea de como lograrlo...
__________________
Nuevamente a las pistas ...
  #2 (permalink)  
Antiguo 22/02/2008, 13:11
Avatar de hgp147  
Fecha de Ingreso: diciembre-2006
Ubicación: Buenos Aires, Argentina
Mensajes: 980
Antigüedad: 17 años, 3 meses
Puntos: 36
Re: move_uploaded_file() AJAX

Lo que querés es que muestre un mensaje por ejemplo: "Subiendo imagen"???

Pone el evento onclick al boton que envía el formulario, y que dicho evento muestre una capa cuyo contenido sea "Subiendo imagen..."
  #3 (permalink)  
Antiguo 22/02/2008, 13:22
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: move_uploaded_file() AJAX

Solo para que evites estar haciendo mas pruebas, actualmente no es posible subir archivos vía AJAX, la única forma de subir archivos de forma asincrona es usando un Iframe oculto.

Saludos.
  #4 (permalink)  
Antiguo 22/02/2008, 14:04
Avatar de jorgedx  
Fecha de Ingreso: junio-2005
Ubicación: Chile, Los Andes
Mensajes: 406
Antigüedad: 18 años, 10 meses
Puntos: 4
Re: move_uploaded_file() AJAX

lo que pasa es que puedo leer las propiedades del archivo que intento subir en la pagina que es llamada por el ajax hasta la direccion temporal del archivo en el servidor, asi es que me pregunto si tengo la direccion y los datos de ese archivo temporal no puedo copiarlo a una ubicacion que me interese ?

trate esto pero me tira un error de safe mode.
__________________
Nuevamente a las pistas ...
  #5 (permalink)  
Antiguo 22/02/2008, 15:25
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: move_uploaded_file() AJAX

El problema es que al terminar la petición del archivo original, todos los archivos temporales que se suben via $_FILES son borrados por el garbage collector de PHP.

Por eso no los puedes mover mas adelante.

Saludos.
  #6 (permalink)  
Antiguo 22/02/2008, 17:07
Avatar de jorgedx  
Fecha de Ingreso: junio-2005
Ubicación: Chile, Los Andes
Mensajes: 406
Antigüedad: 18 años, 10 meses
Puntos: 4
Re: move_uploaded_file() AJAX

ok, gracias.
__________________
Nuevamente a las pistas ...
  #7 (permalink)  
Antiguo 22/02/2008, 17:25
Avatar de capa  
Fecha de Ingreso: octubre-2006
Mensajes: 86
Antigüedad: 17 años, 6 meses
Puntos: 1
Re: move_uploaded_file() AJAX

Hola, con este tema pase un buen rato, lo cierto es que con Ajax no se puede subir archivos asincrónicamente, pero hay artículos que mencionan AJAX uploader, pero lo hacen con un IFRAME , puse un ejemplo en este post:

http://www.forosdelweb.com/f77/file-...con-js-555034/

a ver le sirve, si encuentras info sobre el tema me pasa el dato thansk.
__________________
Destreza..<?phs La felicidad es un trayecto ?>
  #8 (permalink)  
Antiguo 22/02/2008, 18:54
Avatar de jorgedx  
Fecha de Ingreso: junio-2005
Ubicación: Chile, Los Andes
Mensajes: 406
Antigüedad: 18 años, 10 meses
Puntos: 4
Re: move_uploaded_file() AJAX

si, yo estaba haciendo algo un poco distinto es cierto que el famoso evento de ajax XMLHttpRequest no hace posible el envio, mi limitacion era como comentaba GatoV el garbage collector, que debe haber eliminado los datos una vez que no los use en la pagina contigua,

aunque sigo averiguando y si tengo algunaopcion la doy,

en todo caso capa tu codigo es bastante util y simple, gracias.
__________________
Nuevamente a las pistas ...
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 09:47.