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 fi开发者_如何学Cle 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?
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
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);
}
});
});
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);
}
});
});
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.
精彩评论