Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

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?

like image 501
Brett Avatar asked Oct 31 '10 22:10

Brett


2 Answers

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

like image 79
Lorenzo Avatar answered Oct 09 '22 12:10

Lorenzo


Anything that is echoed in your add_list.php file is sent to the onComplete function as response. So you could do the following:

$(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);
      }
    });
});
like image 32
RonnieSan Avatar answered Oct 09 '22 11:10

RonnieSan