jquery plugin 'uploadify' - Way to return a response from upload script?

Brett picture Brett · Oct 31, 2010 · Viewed 10.6k times · Source

My header code:

$(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'
    });
});

AFAIK all I can do in the "add_list.php" file is finish the upload process off by moving the file to the final dir; I don't think there is any way I can 'return something' like an error right?

It would be good if I could use this file also to disallow certain characters or return an error if there was some kind of problem, but I don't think there is?

I guess I could just strip out any bad characters, but would be useful to know if I can return a response somehow?

Answer

Lorenzo picture Lorenzo · Oct 31, 2010

You can add some event handlers to your upload script to check for complete action and for 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.
    }

});

So, as the onComplete function will have the response sent back from the server side script, you can return a response to the client and then parse the response inside the event handler.

Check the Uploadify documentation for more details

Hope it helps