2010-10-31 12 views
5

Mi código de cabecera:jquery plugin 'uploadify' - ¿Cómo devolver una respuesta desde el script de carga?

$(document).ready(function() { 
    $('#sampleFile').uploadify({ 
     'uploader': 'include/uploadify/uploadify.swf', 
     'script': 'add_list.php', 
     'scriptData': {'mode': 'upload'}, 
     'fileDataName': 'sampleFile', 
     'folder': '/work/avais/bizlists/lists', 
     'cancelImg': 'include/uploadify/cancel.png', 
     'queueID': 'sampleQueue' 
    }); 
}); 

yo sepa todo lo que puedo hacer en el archivo "add_list.php" es terminar el proceso de carga fuera moviendo el archivo en el directorio final; No creo que haya ninguna forma en que pueda 'devolver algo' como un error ¿verdad?

Sería bueno si pudiera usar este archivo también para rechazar ciertos caracteres o devolver un error si hubiera algún tipo de problema, pero no creo que exista?

Supongo que podría eliminar cualquier caracter malo, ¿pero sería útil saber si puedo responder de alguna manera?

+0

posible duplicado de [Uploadify: mostrar el mensaje de error de la respuesta HTTP] (http://stackoverflow.com/questions/1877644/uploadify-show-error-message-from-http-response) –

Respuesta

7

Puede agregar algunos controladores de eventos para su script de carga para comprobar la acción completa y para el error

$('#sampleFile').uploadify({ 
     'uploader': 'include/uploadify/uploadify.swf', 
     'script': 'add_list.php', 
     'scriptData': {'mode': 'upload'}, 
     'fileDataName': 'sampleFile', 
     'folder': '/work/avais/bizlists/lists', 
     'cancelImg': 'include/uploadify/cancel.png', 
     'queueID': 'sampleQueue' 

    onComplete: function (event, queueID, fileObj, response, data) { 
     // A function that triggers when a file upload has completed. The default 
     // function removes the file queue item from the upload queue. The 
     // default function will not trigger if the value of your custom 
     // function returns false. 
     // Parameters 
     // event: The event object. 
     // queueID: The unique identifier of the file that was completed. 
     // fileObj: An object containing details about the file that was selected. 
     // response: The data sent back from the server. 
     // data: Details about the file queue. 
    }, 

    onError: function (event, queueID, fileObj, errorObj) { 
     // A function that triggers when an error occurs during the upload process. 
     // The default event handler attaches an error message to the queue item 
     // returning the error and changes it's queue item container to red. 
     // Parameters 
     // event: The event object. 
     // queueID: The unique identifier of the file that was errored. 
     // fileObj: An object containing details about the file that was selected. 
     // errorObj: An object containing details about the error returned. 
    } 

}); 

Así que, como la función onComplete tendrá la respuesta enviada de vuelta de la secuencia de comandos del lado del servidor, puede volver una respuesta al cliente y luego analizar la respuesta dentro del controlador de eventos.

Comprobar la Uploadify documentation para más información,

creo que sirve

+0

Gracias, sabía de esos manejadores, aunque no sabían que la función onComplete devolvió el resultado al script del lado del servidor. :) – Brett

1

Todo lo que se hace eco de su archivo se envía a add_list.php la función onComplete como respuesta. Por lo que podría hacer lo siguiente:

$(document).ready(function() { 
$('#sampleFile').uploadify({ 
    'uploader': 'include/uploadify/uploadify.swf', 
    'script': 'add_list.php', 
    'scriptData': {'mode': 'upload'}, 
    'fileDataName': 'sampleFile', 
    'folder': '/work/avais/bizlists/lists', 
    'cancelImg': 'include/uploadify/cancel.png', 
    'queueID': 'sampleQueue', 
    'onComplete' : function(event,ID,fileObj,response,data) { 
     alert(response); 
     } 
    }); 
}); 
+0

¡Muchas gracias por el ejemplo! :) – Brett

0

Si desea que el nombre del archivo, "debe" usar (el método correcto) fileObj.name:

$(document).ready(function() { 
$('#sampleFile').uploadify({ 
    'uploader': 'include/uploadify/uploadify.swf', 
    'script': 'add_list.php', 
    'scriptData': {'mode': 'upload'}, 
    'fileDataName': 'sampleFile', 
    'folder': '/work/avais/bizlists/lists', 
    'cancelImg': 'include/uploadify/cancel.png', 
    'queueID': 'sampleQueue', 
    'onComplete' : function(event,ID,fileObj,response,data) { 
     alert(fileObj.name); 
     } 
    }); 
}); 
0

Para cualquiera que se cruce en esto en el futuro Me llevó un poco averiguar cómo pasar mis propios datos desde el servidor.

La versión actual de uploadify en este escrito es 3.2 y que probablemente están buscando para el evento onUploadSuccess: http://www.uploadify.com/documentation/uploadify/onuploadsuccess/

que le permitirá obtener los datos devueltos por el servidor.

Cuestiones relacionadas