/*
*作者:一些事情
*时间: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));
}
};