Ajax上传文件

3 篇文章 0 订阅

主要是以js小脚本的方式来提交文件的,可能会有部分浏览器不支持的问题,不过这个方法也是很值得收藏的:

该方法及简单有是轻量级的js脚本,代码如下:

function UpladFile() {
        	var fileObj;
        	try {
        		<span style="color:#ff0000;">fileObj = document.getElementById("Myfile").files[0]; // 获取文件对象</span>
			} catch (e) {
				fileObj = document.getElementById("Myfile"); // 获取文件对象
			}            
            //alert(fileObj);            
            var FileController = "/crowdsourcing/UpLoadAction!addProduct.action";  
            try {
            	// FormData 对象
                var form = new FormData();
            	//var form = document.forms[0];
            	//var form = document.getElementById("uploadForm");
            	//alert(form);
			} catch (e) {
				alert(e);
			}
            
            form.append("upload", fileObj);
            // XMLHttpRequest 对象
	     	var xhr;
	     	if(window.XMLHttpRequest) {	// 非IE浏览器
	     		xhr = new XMLHttpRequest();
					if(xhr.overrideMimeType) {
						xhr.overrideMimeType("text/xml");
					}
			} else if (window.ActiveXObject) {	// IE浏览器
				try{
					xhr = new window.ActiveXObject("Msxml2.XMLHTTP");
				} 
				catch(e){
					try{
						xhr = new window.ActiveXObject("Microsoft.XMLHTTP");
					} 
					catch(e) {
					}
				}
			}
            xhr.open("post", FileController, true);
            xhr.onload = function () {
            	if(xhr.readyState == 4) {
                	alert("上传完成!");
                	document.getElementById("subimtFile").disabled="disabled";
            	} else {
            		alert("上传失败!");
            	}
            };
            xhr.send(form);
        }

"var form = new FormData()"是有些浏览器不兼容的地方,其它的应该都没有问题,IE9(包含)之前的版本几乎都不支持<span style="color: rgb(255, 0, 0); ">FormData</span>对象。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值