I am using Uploadify to upload files. Problem is, I need to inform users of any error during processing of those files.
Uploadify has onError
, onComplete
, and onAllComplete
event handler but I do not know how to trigger these events so that users are informed of what is going on.
Do I need to send JSON string? There is a clue here and here and here but I couldn't make it to work. Perhaps the posting in the forum is outdated.
Anyone got any exa开发者_Go百科mple that works for Uploadify 2.1?
onError
goes within the options of uploadify:
$("#fileInput").uploadify({
onError: function(e, q, f, o) {
alert("ERROR: " + o.info);
}
});
From the Documentation
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.
Four arguments are sent to the function:
- event: The event object.
- queueID: The unique identifier of the file that returned an error.
- fileObj: An object containing details about the file that was selected.
- name – The name of the file
- size – The size in bytes of the file
- creationDate – The date the file was created
- modificationDate – The last date the file was modified
- type – The file extension beginning with a ‘.’
- errorObj: An object containing details about the error returned.
- type – Either ‘HTTP’, ‘IO’, or ‘Security’
- info – An error message describing the type of error returned
This was killing me but I found a way. In the uploadify.php file I created all my validation. The difference here is that I set HTTP 4xx codes for each type of error.
if (! in_array($fileParts['extension'], $typesArray)) {
header("HTTP/1.1 405"); //any 4XX error will work
exit();
}
This throws the "405" error back to uploadify.js.
In the file I set $("#fileInput").uploadify() I added the "onError" function.
'onError' : function(event, ID, fileObj, errorObj) {
var r = "<br />ERROR: ";
switch(errorObj.info) {
case 405:
r += "Invalid file type.";
break;
case 406:
r += "Some other error.";
break;
}
setTimeout('$("#fileInput'+ ID + 'span.percentage").html("'+r+'");',111);
}
This forces the uploadify default function to exist while kind of extending it.
Hope this help!
onError: function (a, b, c, d) {
if (d.status == 404)
alert('Could not find upload script. Use a path relative to: '+'<?= getcwd() ?>');
else if (d.type === "HTTP")
alert('error '+d.type+": "+d.status);
else if (d.type ==="File Size")
alert(c.name+' '+d.type+' Limit: '+Math.round(d.sizeLimit/1024)+'KB');
else
alert('error '+d.type+": "+d.text);
},
精彩评论