文件上传的问题

在项目中,有时候免不了做文件上传,其中有formData,但是formData的兼容性在IE10,如果想要兼容更低版本的浏览器,我们可以用iframe来实现。

首先我们要说,给你一个接口,去做文件上传,使用ajax来做文件上传,目前我试过的方法是不行的,所以我们要用表单来做文件上传,上传以后要拿到后台的返回数据,但是不使用ajax还拿不到,而且使用form表单会发生页面跳转,所以我们使用iframe来做无刷新表单提交,同时拿到后台返回的数据。

不多bb,上代码

<form action="后台接口" target="target1" enctype="multipart/form-data">//enctype一定要写,这个代表上传的文件的类型
    <input type="file" id="file>
    <input type="button" value="上传" id="btn">
</form>

下面是js代码

var iframe1 = document.createElement("iframe")
iframe1.width=""
iframe1.height=""
iframe1.name=""
iframe1.id=""
iframe1.setAttribute()
//在ie下
if (iframe1.attachEvent) {
  var responData = this.contentWindow.document.body.innerText
  responData就是你拿到的后台的返回值
}
在普通浏览器下
iframe1.onload=function(){
  var responData = this.contentWindow.document.body.innerText
}

没办法   就是这么简单。如果产品要求兼容IE9一下,那么不想用jq插件的情况下   ,这个还是个不错的选择

  

原文地址:https://www.cnblogs.com/yaxinwang/p/7803770.html