FileUpload.prototype._uploadUsingFrame = function() { var obj = this; var $frame = $("#uploadFrame"); if ($frame.length == 0) { $frame = $("<iframe id="uploadFrame" width="0" height="0" name="uploadFrame" src=""></iframe>"); $frame.appendTo("body"); $frame.load(function() { var response = $frame.contents().text(); try { var json = $.parseJSON(response); $(obj).trigger("onLoad", json); } catch(ex) { $(obj).trigger("onError", response); } }); } var form = $("#" + this.id).closest("form")[0]; form.target = "uploadFrame"; form.submit(); };
FileUpload.prototype._uploadUsingFormData = function (file) { var obj = this; var xhr = new XMLHttpRequest(); xhr.addEventListener("load", function (e) { var json = $.parseJSON(xhr.response); $(obj).trigger("onLoad", json); }, false); xhr.addEventListener("error", function (e) { $(obj).trigger("onError", e); }, false); xhr.upload.addEventListener("progress", function (e) { if (e.lengthComputable) { $(obj).trigger("onProgress", e.loaded, e.total); } }, false); xhr.open("POST", obj.url);
if (obj.maxSize != null&&file.size>obj.maxSize) { $(obj).trigger("onMaxSizeError"); return; } if (obj.extensions != null) { var name = file.name; var ext = name.substring(name.lastIndexOf("."), name.length).toLowerCase(); if (obj.extensions.indexOf(ext) < 0) { $(obj).trigger("onExtensionError"); return; } } var formData = new FormData(); formData.append("files", file); xhr.send(formData); };