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

十年热恋 提交于 2019-12-21 16:33:20

问题


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?


回答1:


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




回答2:


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);
      }
    });
});



回答3:


If you want the name of the file, you "must" use (the correct method) 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);
      }
    });
});



回答4:


To anybody who may run into this in the future. It took me a little bit to figure out how to pass my own data back from the server.

The current version of uploadify at this writing is 3.2 and you are probably looking for the onUploadSuccess event: http://www.uploadify.com/documentation/uploadify/onuploadsuccess/

That will allow you to get returned data from the server.



来源:https://stackoverflow.com/questions/4065477/jquery-plugin-uploadify-way-to-return-a-response-from-upload-script

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!