java中无刷新上传文件IE8不兼容处理-java文件传输

java中无刷新上传文件IE8不兼容处理-java文件传输

如果看过我前两天写的那篇无刷新上传文件,并且亲自试过,如果你用的是谷歌或者火狐试的那不会发现问题,如果不巧你用的是IE浏览器且是IE8的肯定会出现错误,不巧今天顾客反映IE8没有效果,经过一番努力终于把这个问题解决了,废话不多说直接上代码:

先给大家看一下我前几天写的那篇相关代码:

function doUpload() {

var formData = new FormData($( "#uploadForm" )[0]); //重点

$.ajax({

url:'${ctx}/sossmail/wenjiansc",

type: 'POST',

data: formData, //重点:data类型是formData

这是用formData实现的文件上传,正是这个原因才导致IE8不能进行文件上传,因为IE8不支持formdata对象,所以只能换个思路,换个想法,经过同事的提示和百度的搜索终于知道了另外一个可以提交表单上传文件的js:jquery.form.js(这个js如果需要可以百度搜索一下,一大推,这里我就不写下载路径了)

1:第一步下载好juery.form.js并把它引入到你的jsp文件中,例如:<script type="text/javascript" src="https://www.shangyouw.cn${ctxStatic}/jquery/jquery.form.js"></script>,如果你确定引入了这个js但是在浏览器的控制台上还是会报错没有定义这个方法,可能是你的jQuery的包冲突了,你自行排查一下

2:如果js下载好了,准备工作完成了,下面的工作就很简单了,就在我前几天写的那篇文章上稍微改一下就ok了,改完代码如下:

function doUpload() {

$("#uploadForm").ajaxSubmit({ //就这里改变了换成了ajaxSubmit,并且把相关的formdata去掉,重点提醒一下#uploadForm是form表单的ID

url:'${ctx}/sossmail/wenjiansc",

type: 'POST',

async: false,

cache: false,

contentType: false,

processData: false,

dataType : 'json',

success : function (opts) {

推荐阅读