/* *作者:一些事情 *时间:2015-4-28 *需要结合jquery.jcrop一起使用 ----------------------------------------------------------*/ var jcrop_api, boundx, boundy; //初始化webuploader function initwebuploader(webpath) { var parentobj = $("#upload-box"); var btnobj = $('
上传
').appendto(parentobj); var uploader = webuploader.create({ auto: true, //自动上传 swf: webpath + 'scripts/webuploader/uploader.swf', //swf路径 server: webpath + 'tools/upload_ajax.ashx?action=singlefile', //上传地址 pick: { id: btnobj, multiple: false }, accept: { title: 'images', extensions: 'jpg,jpge,png,gif,zip,rar,doc,docx', mimetypes: '*' }, formdata: { 'delfilepath': '' //定义参数 }, fileval: 'filedata', //上传域的名称 sendasbinary: true, //二进制流上传 filesinglesizelimit: 2048 * 1024 //文件大小 }); //当validate不通过时,会以派送错误事件的形式通知 uploader.on('error', function (type) { switch (type) { case 'q_exceed_num_limit': alert("错误:上传文件数量过多!"); break; case 'q_exceed_size_limit': alert("错误:文件总大小超出限制!"); break; case 'f_exceed_size': alert("错误:文件大小超出限制!"); break; case 'q_type_denied': alert("错误:禁止上传该类型文件!"); break; case 'f_duplicate': alert("错误:请勿重复上传该文件!"); break; default: alert('错误代码:' + type); break; } }); //当有文件添加进来的时候 uploader.on('filequeued', function (file) { uploader.options.formdata.delfilepath = $('#hidefilename').val(); //防止重复创建 if (parentobj.children(".upload-progress").length == 0) { //创建进度条 var fileprogressobj = $('
').appendto(parentobj); var progresstext = $('正在上传,请稍候...').appendto(fileprogressobj); var progressbar = $('').appendto(fileprogressobj); var progresscancel = $('关闭').appendto(fileprogressobj); //绑定点击事件 progresscancel.click(function () { uploader.cancelfile(file); fileprogressobj.remove(); }); } }); //文件上传过程中创建进度条实时显示 uploader.on('uploadprogress', function (file, percentage) { var progressobj = parentobj.children(".upload-progress"); progressobj.children(".txt").html(file.name); progressobj.find(".bar b").width(percentage * 100 + "%"); }); //当文件上传出错时触发 uploader.on('uploaderror', function (file, reason) { uploader.removefile(file); //从队列中移除 alert(file.name + "上传失败,错误代码:" + reason); }); //当文件上传成功时触发 uploader.on('uploadsuccess', function (file, data) { $('#jianli').attr('value', data.path); }); //不管成功或者失败,文件上传完成时触发 uploader.on('uploadcomplete', function (file) { var progressobj = parentobj.children(".upload-progress"); progressobj.children(".txt").html("上传完成"); //如果队列为空,则移除进度条 if (uploader.getstats().queuenum == 0) { progressobj.remove(); } }); } //提交裁剪 function cropsubmit(obj) { if ($("#hidefilename").val() == '') { dialog({ title: '提示', content: '请先上传一张图片再提交保存!', okvalue: '确定', ok: function () { } }).showmodal(); return false; } var btntxt = $(obj).val(); $.ajax({ type: "post", url: $("#uploadform").attr("url"), data: $("#uploadform").serialize(), datatype: "json", beforesend: function (formdata, jqform, options) { $(obj).prop("disabled", true).val("请稍候.."); }, success: function (data, textstatus) { if (data.status == 1) { var d = dialog({ content: '头像上传成功!' }).show(); settimeout(function () { d.close().remove(); location.reload(); }, 2000); } else { dialog({ title: '提示', content: data.msg, okvalue: '确定', ok: function () { } }).showmodal(); } }, error: function (xmlhttprequest, textstatus, errorthrown) { dialog({ title: '提示', content: "状态:" + textstatus + ";出错提示:" + errorthrown, okvalue: '确定', ok: function () { } }).showmodal(); }, complete: function (xmlhttprequest, textstatus) { $(obj).prop("disabled", false).val(btntxt); }, timeout: 20000 }); return false; } //初始化jcrop function initjcrop() { $("#target").jcrop({ onchange: updatepreview, onselect: updatepreview, aspectratio: 1, boxwidth: 350, boxheight: 350 }, function () { jcrop_api = this; }); }; //头像预览图 function updatepreview(c) { if (parseint(c.w) > 0) { var rx = 180 / c.w; var ry = 180 / c.h; $('#preview').css({ width: math.round(rx * boundx) + 'px', height: math.round(ry * boundy) + 'px', marginleft: '-' + math.round(rx * c.x) + 'px', margintop: '-' + math.round(ry * c.y) + 'px' }); $('#hidex1').val(math.round(c.x)); $('#hidey1').val(math.round(c.y)); $('#hidewidth').val(math.round(c.w)); $('#hideheight').val(math.round(c.h)); } };