$('.upload_btn_mini', upload).click(function () { var _this = $(this); var title = _this.attr('title'); if (title == '最小化') { //最小化 _this.attr('title', '还原').removeClass('upload_btn_mini_yc').addClass('upload_btn_mini_hy').data('offset', upload.offset()).parent().attr('title','双击还原窗口'); upload.animate({ width: '200px', height: '33px', bottom: '10px', right: '10px' }, 200); } else { //还原 var offset = _this.data('offset'); upload.animate({ width: '480px', height: '290px', bottom: offset.top, right: offset.left }, function () { upload.removeAttr('style'); }); _this.attr('title', '最小化').removeClass('upload_btn_mini_hy').addClass('upload_btn_mini_yc').parent().attr('title', '双击最小化窗口'); } });
if (option.auto) { $('#divFileUpload_btn_select_' + option.id).click(); }
//选中文件的处理与回调 var funDealFiles = function (files) { //过滤文件 if (typeof (option.filter) == 'function') { files = option.filter.call(this, files); } var i = 0; var funAppendImage = function () { var file = files[i]; if (file) { var fileName = file.name.length > option.fileNameLength ? file.name.substr(0, option.fileNameLength) + '...' : file.name; var fileDiv = $("
").data('file', file).appendTo('#upload_list_' + option.id); var cancle = fileDiv.find('.upload_item_del'); cancle.click(function () { //删除 var tmp = $(this).parent(); if (tmp.attr('status') == 'uploading') { if (confirm('确定删除当前文件吗?')) { xhr.abort(); } } else { tmp.remove(); } });
//如果是图片,则显示缩略图 if (file.type.indexOf('image') != -1) { var reader = new FileReader(); reader.Onload= function (e) { //展示img $('.upload_item_title', fileDiv).before("
function sendFile() { var list = $('.upload_item[status=start]', upload); if (list.length == 0) { if (typeof (option.onComplete) == 'function') { //全部完成事件 option.onComplete.call(); } return; } var fileDiv = list.eq(0).attr('status', 'uploading'); var file = fileDiv.data('file'); var msg = fileDiv.find(".upload_item_progress_msg"); var bg = fileDiv.find(".upload_item_progress_bg");
//上传到服务器 xhr = new XMLHttpRequest(); xhr.Onreadystatechange= function () { if (xhr.readyState == 4) { if (xhr.status == 200) { fileDiv.attr('status', 'uploaded'); //bg.css('width', '100%'); var obj = eval("(" + xhr.responseText + ")"); if (typeof (option.onSuccess) == 'function') { //上传成功事件 option.onSuccess.call(this, obj); } } xhr = null; sendFile(); } };
xhr.upload.Onprogress= function (e) { //进度显示 if (e.lengthComputable) { var percentage = Math.round((e.loaded * 100) / e.total); msg.html(percentage + ' %'); bg.animate({ width: percentage + '%' }, 100); } };
xhr.Onabort= function (e) { fileDiv.remove(); sendFile(); } xhr.Onload= function (e) {
}; xhr.Onerror= function (e) { msg.html("上传失败!"); fileDiv.attr('status', 'error'); if (typeof (option.onFailure) == 'function') { //上传失败事件 option.onFailure.call(); } sendFile(); } xhr.open('post', option.url, true); var formData = new FormData(); formData.append("file", file); xhr.send(formData); msg.html("上传中..."); } };