var size = 0;

$("#upload").click(upload);

// 绑定所有type=file的元素的onchange事件的处理函数
$(':file').change(function() {
	var file = this.value;
	if (file) {
		name = file.name;
		size = file.size;
		type = file.type;
		// url = window.URL.createObjectURL(file);
	}
});

/**
 * 上传文件
 */
function upload() {
	$('#progressDiv').css("display", "hidden");
	var value = document.getElementById("file").value;
	if (!value) {
		$("#result").html("文件为空，无法进行上传！");
		return;
	}
	// 清除内容
	$("#result").html("");
	var fileType = document.getElementById("typeSelect").value || "jrxml";
	var ext = value.substring(value.lastIndexOf(".") + 1);
	if (fileType == "jrxml" || fileType == "zip") {
		if (fileType != ext) {
			$("#result").html("文件并非" + fileType);
			return;
		}
	} else if (fileType == "image") {
		if (!/^(gif|jpg|jpeg|png|bmp|tiff|pcx|tga|exif|fpx|svg|psd|cdr|pcd|dxf|ufo|eps|ai|raw)$/
				.test(ext)) {
			$("#result").html("文件并非图片");
			return;
		}
	}

	// 创建FormData对象，初始化为form表单中的数据
	var formData = new FormData($('form')[0]);
	var userName = getParameter("userName") || "tmp";
	formData.append('userName', userName);
	formData.append('fileType', fileType);

	// 显示进度
	$('#progressDiv').css("display", "block");
	// $('#progressDiv').toggle();
	// ajax异步上传
	$.ajax({
		url : "file/upload",
		type : "POST",
		data : formData,
		xhr : function() {
			myXhr = $.ajaxSettings.xhr();
			if (myXhr.upload) {
				// 绑定progress事件的回调函数
				myXhr.upload.addEventListener('progress',
						progressHandlingFunction, false);
			}
			return myXhr;
		},
		success : function(result) {
			$("#result").html(result);
		},
		contentType : false,
		processData : false
	});

}

/**
 * 上传进度回调函数
 * 
 * @param e
 */
function progressHandlingFunction(e) {
	if (e.lengthComputable) {
		$('progress').attr({
			value : e.loaded,
			max : e.total
		}); // 更新数据到进度条
		var percent = e.loaded / e.total * 100;
		$('#progress').html(
				e.loaded + "/" + e.total + " bytes. " + percent.toFixed(2)
						+ "%");
	}
}
