Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Uploadify: Como usar ajax y php para buscar errores

Estas en el tema de Uploadify: Como usar ajax y php para buscar errores en el foro de Frameworks JS en Foros del Web. Como estan muchachones tiempisimo sin crear nada en los foros. Bueno al grano. Estoy usando el uploadify, que me aprece un excelente plugin la verdad, ...
  #1 (permalink)  
Antiguo 20/02/2012, 11:25
 
Fecha de Ingreso: diciembre-2006
Mensajes: 213
Antigüedad: 17 años, 11 meses
Puntos: 0
Uploadify: Como usar ajax y php para buscar errores

Como estan muchachones tiempisimo sin crear nada en los foros. Bueno al grano.

Estoy usando el uploadify, que me aprece un excelente plugin la verdad, muy buena documentacion e implementacion, mis felicidades al creador o a los creadores. Solo tengo un pequeño detallito que me parece raro, estuve haciendo pruebas con el uploadify y funciona, pero me puse a hacer pruebas para la deteccion de errores y mi sorpresa es que no detecta errores :S, alguna mala configuracion mia o no se.

Probe las dos escenciales, cuando no puede escribir en el directorio de destino, y cuando el archvo existe, el problema es que a vista de uplaodify el archivo es cargado al servidor, en /tmp cierto, pero ya despues de alli se desentiende, no verifica si el archivo fue creado, si el directorio es escrbible, etc.

Mi pregutna es la siguiente, horita ando aprendiendo sobre ajax, para llamar a funciones en php que me retornen un valor, lo que necesito es que cuando comienza a cargar un archivo el uplaodify, necesito que llame a la funcion en php que me dira si puedo escribir en el directorio y si el destino existe, luego cuando se complete verificar que el archivo existe en el directorio. Para darles un ejemplo les coloco un codigo.

Las funciones en php serian simples, que de echo ya estan echas se pueden utilizar las ya creadas en php o hacer unas nuevas, supongamos unas nuevas solo por el ejemplo: funciones.php
Código PHP:

function FileExist($file)
{
    if(!
file_exists($file))
        return 
false;
    return 
true;
}

function 
DirectoryExist($dir)
{
    if(!
file_exists($dir))
        return 
false;
    return 
true;
}

function 
DirectoryPerms($dir)
{
    
//MAS CODIGO



Este seria un ejemplo de mi configuracion dle uploadify
Código Javascript:
Ver original
  1. $('#file_upload').uploadify(
  2.     {
  3.         'uploader'       : 'uploadify/uploadify.swf',
  4.         'script'         : 'uploadify/uploadify.php',
  5.         'cancelImg'      : 'uploadify/cancel.png',
  6.         'folder'         : folder,
  7.         'sizeLimit'   : 102400,
  8.         'removeCompleted' : false,
  9.         'auto'         : false,
  10.         'multi'          : true,
  11.         'queueSizeLimit' : 3,
  12.         'queueID'        : 'queue',
  13.         'wmode'       : 'opaque',
  14.         'displayData' : 'percentage',
  15.        
  16.         'onError'     : function (event,ID,fileObj,errorObj) {
  17.             alert(errorObj.type + ' Error: ' + errorObj.info);},
  18.        
  19.         'onComplete': function(event, ID, fileObj, response, data) {
  20.             /* AQUI IRIA EL CODIGO QUE LLAMA A LA FUNCION PHP
  21.             * PARA VERIFICAR QUE EL ARCHIVO CARGADO, FUE CARGADO
  22.             *  EXITOSAMENTE, O SEA LLAMARIA A LA FUNCION FileExist($ruta_archivo) */
  23.        },
  24.        
  25.        'onOpen'      : function(event,ID,fileObj) {
  26.             /* AQUI IRIA EL CODIGO QUE LLAMA A LA FUNCION PHP
  27.             * PARA VERIFICAR QUE EL DESTINO NO EXISTE Y QUE EL DIRECTORIO
  28.             *  SE PUEDA ESCRIBIR */
  29.        },
  30.        
  31.         'onSelectOnce'   : function(event,data) {
  32.             $('#status-message').text(data.filesSelected + ' Archivos han sido añadidos a la cola.');},
  33.        
  34.         'onAllComplete'  : function(event,data) {
  35.             $('#status-message').text(data.filesUploaded + ' Archivos cargados, ' + data.errors + ' Errores.');}
  36.     });

Aqui les dejo el codigo del php que carga el archivo. uploadify.php
Código PHP:
if (!empty($_FILES)) {
    
$tempFile $_FILES['Filedata']['tmp_name'];
    
$targetPath $_SERVER['DOCUMENT_ROOT'] . $_REQUEST['folder'] . '/';
    
$targetFile =  str_replace('//','/',$targetPath) . $_FILES['Filedata']['name'];
    
              
move_uploaded_file($tempFile,$targetFile);
              return 
str_replace($_SERVER['DOCUMENT_ROOT'],'',$targetFile);

Se que para ustedes esto es facil, quien me echa una manito.
__________________
Solo se que nada se . . . Nirvana: Un Sentimiento Echo Realidad.
  #2 (permalink)  
Antiguo 20/02/2012, 12:10
 
Fecha de Ingreso: diciembre-2006
Mensajes: 213
Antigüedad: 17 años, 11 meses
Puntos: 0
Respuesta: Uploadify: Como usar ajax y php para buscar errores

Revisando bien el codigo y documentacion de uploadify me di cuenta de algo que no habia visto bien, pero igual no me sirve completamente. La funcion 'OnComplete' del uploadify recibe la variable 'response' que es la respuesta que da el script php. De este modo tengo algo como esto, solo cuando ya carga el archivo.

uploadify.php
Código PHP:
if (!empty($_FILES)) {
    
$tempFile $_FILES['Filedata']['tmp_name'];
    
$targetPath $_SERVER['DOCUMENT_ROOT'] . $_REQUEST['folder'] . '/';
    
$targetFile =  str_replace('//','/',$targetPath) . $_FILES['Filedata']['name'];
    if(!
file_exists(str_replace('//','/',$targetPath)))
        if(!
mkdir(str_replace('//','/',$targetPath), 0755true))
        {
            echo 
"-1";
            return;
        }
        
move_uploaded_file($tempFile,$targetFile);
        if(
file_exists($targetFile))
            echo 
"1";
        else
            echo 
"-2";//no se creo el archivo

y en mi javascript tengo lo siguiente:
Código Javascript:
Ver original
  1. var folder = 'archivos';
  2. $(function() {
  3.     $('#file_upload').uploadify(
  4.     {
  5.         'uploader'       : 'uploadify/uploadify.swf',
  6.         'script'         : 'uploadify/uploadify.php',
  7.         'cancelImg'      : 'uploadify/cancel.png',
  8.         'folder'         : folder,
  9.         'sizeLimit'   : 102400,
  10.         'removeCompleted' : false,
  11.         'auto'         : false,
  12.         'multi'          : true,
  13.         'queueSizeLimit' : 3,
  14.         'queueID'        : 'queue',
  15.         'wmode'       : 'opaque',
  16.         'displayData' : 'percentage',
  17.        
  18.         'onComplete': function(event, ID, fileObj, response, data) {
  19.             switch(response)
  20.             {
  21.                 case '1':
  22.                     alert("Archivo "+ fileObj.name+ " cargado exitosamente");
  23.                     break;
  24.                    
  25.                 case '-1':
  26.                     alert("El direcotrio de usuario no existe y no pudo ser creado, comuniquese con el adminsitrador");
  27.                     redireccionar();
  28.                     break;
  29.                    
  30.                 case '-2':
  31.                     alert("Error cargando el archivo "+ fileObj.name + ", no se pudo copiar a su carpeta de usuario");
  32.                     break;
  33.                    
  34.                 default:
  35.                     break;
  36.             }
  37.            
  38.         },
  39.        
  40.         'onError'     : function (event,ID,fileObj,errorObj) {
  41.             alert(errorObj.type + ' Error: ' + errorObj.info);},
  42.        
  43.         'onCheck'     : function(event,data,key) {
  44.             $('#file_upload' + key).find('.percentage').text(' - El archivo ya existe');},
  45.        
  46.         'onSelectOnce'   : function(event,data) {
  47.             $('#status-message').text(data.filesSelected + ' Archivos han sido añadidos a la cola.');},
  48.        
  49.         'onAllComplete'  : function(event,data) {
  50.             $('#status-message').text(data.filesUploaded + ' Archivos cargados, ' + data.errors + ' Errores.');}
  51.     });
  52. });

Excelente, observamos como utilizo lo que imprime el php y lo toma la variable 'response' del javascript, necesito hacer lo mismo pero para cuando cargue el archivo, o sea en la funcion 'OnSelectOnce'. Aqui si necesito lo de arriba, llamar a na funcion en php.
__________________
Solo se que nada se . . . Nirvana: Un Sentimiento Echo Realidad.
  #3 (permalink)  
Antiguo 29/04/2012, 15:55
 
Fecha de Ingreso: abril-2012
Mensajes: 1
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: Uploadify: Como usar ajax y php para buscar errores

Excelente aporte kurtjavier, hace apenas unos dias me di cuenta de estos detalles con el uploadify y apunta de ensayo y error logre realizar una validacion completa de la subida de un archivo al servidor, mostrando cada error al usuario via ajax

Etiquetas: ajax, errores, funcion, php, uploadify, usar
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




La zona horaria es GMT -6. Ahora son las 05:23.