ajaxfileupload.js实现文件异步上传

前端之家收集整理的这篇文章主要介绍了ajaxfileupload.js实现文件异步上传前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

html中:

var param = $("#inputForm").serialize();
url = $("#inputForm").attr("action");
$.ajaxFileUpload({
	url: url,secureuri: false,fileElementId: 'biCardFile'
	dataType: 'json',success: function (data,status) {
		if (data.result == '0') {								
			layer.alert(data.resultMsg,1,function() {								
				$("#searchForm",window.parent.document).attr("action","${ctx}/merchant/merchantIdentity/");
				$("#searchForm",window.parent.document).submit();
			});
		} else {								
			layer.alert(data.resultMsg);
		}

	},error: function (data,status,e) {
		layer.alert("修改失败");
	}
});
注意:form表单的提交方式method="post";enctype="multipart/form-data"
另外:有童鞋修改js代码支持文件异步上传,区别为fileElementId后面的参数
var param = $("#inputForm").serialize();
url = $("#inputForm").attr("action");
 $.ajaxFileUpload({
	url: url,fileElementId: ['biCardFile','taxCardFile','orgCardFile'],dataType: 'json',e) {
		layer.alert("修改失败");
	}
});
//修改前
//if(fileElement == null)
//oldElement = jQuery('#' + fileElementId[i]);
//else
	//oldElement = fileElement;
//var newElement = jQuery(oldElement).clone(); 
//jQuery(oldElement).attr('id',fileId); 
//jQuery(oldElement).before(newElement); 
//jQuery(oldElement).appendTo(form); 
//修改后
for(var i in fileElementId){
	if(fileElement == null)
		oldElement = jQuery('#' + fileElementId[i]);
	else
		oldElement = fileElement;
    var newElement = jQuery(oldElement).clone();  
    jQuery(oldElement).attr('id',fileId);  
    jQuery(oldElement).before(newElement);  
    jQuery(oldElement).appendTo(form);  
} 


修改位置大概40行左右

ajaxfileupload修改前后对比


另外,dataType=“json”可能导致不管请求成功或失败都会回调error。因为返回的json字符串被包装为<pre>json</pre>。

解决方法为:

//修改前
//eval( "data = " + data );
//修改后
data = jQuery.parseJSON(jQuery(data).text());


修改位置大概215行左右

修改版本ajaxfileupload.js下载

猜你在找的Ajax相关文章