jsp中上传图片

//上传这里使用的是ajax请求,使用的是构建form表单形式上传,其他形式还未尝试,所以用ajax方式

change:function(str,obj){
	if(str=="updateLogo"){
		if(obj.target.files.length>1){
			vmToast.show("只能选择一个图片");
			return false;
		}
		var file = obj.target.files[0];//获取选择的文件
		if(file){
			//获取上传的文件名
			var name = file.name;
			// 获取文件后缀
			var sfIndex=name.lastIndexOf(".");//后缀位置的.的位置
			var ext=name.substring(sfIndex,name.length).toUpperCase();//截取后缀
			// 文件大小  单位:M
			var size=parseInt(file.size/1024/1024);
			//判断文件类型,后台也要做判断
			if(ext !='.PNG' && ext !='.GIF' && ext !='.JPG' && ext !='.JPEG' && ext !='.BMP'){
				vmToast.show("文件类型错误,请上传正确图片类型(png、gif、jpg、jpeg、bmp)");
				return false;
			}
			if(size>10){//文件过大,部分服务器流量有限制,而且后续打开会比较慢
				alert("文件已大于10M,请换个小点的图片");
				return false;
			}
			if (window.FileReader) {
				var reader = new FileReader();
				reader.readAsDataURL(file); //开始读
				//监听文件读取结束后事件
				reader.onloadend = function (e) {
				//e.target.result就是最后的路径地址
				var formData=new FormData();//构建form表单
				formData.append("file",file);
				//ajax发送提交图片请求
				$.ajax({
					type: "post",
					//后面是拼接的文件名,这里是logo,应该是jugetek开始
					url: "***",
					async: true, //异步
					data: formData,
					cache:false,//不缓存
					dataType:"json",
					mimeType:"multipart/form-data",
					processData:false,
					contentType:false,
					timeout: 1000 * 15,
					success:function(data) {
						console.log(data.data[0]);
						if(data.status){
							console.log(data.data[0]);
						}else{
							vmToast.show(data.data[0],2000);
						}
					},
					error: function(ajaxobj) { //有异常
						vmToast.show("异常:"+ajaxobj.responseText);
						console.log(ajaxobj.responseText);
					}
				});
			};
		}else{
			vmToast.show("您的设备不支持图片预览功能,如需该功能请升级您的设备!");
		}
	}
}
}

//上传文本文件类似,就是读取方式有所变化
jsp中上传图片_第1张图片

你可能感兴趣的:(jsp的小知识)