在使用form表单上传文件时候,input[type='file']是必然会用的,其中有一些小坑需要避免。
1、form的 enctype="multipart/form-data" 已经是个老生常谈的问题了,相信都能注意到,就不多说了。
2、上传下载的请求是不能用ajax提交返回json的。
3、当使用input[type='file'] 的onChange事件来触发文件上传的时候要注意当上传成功时清空input的时候,不能简单的使用$("input").val('');这样在某些浏览器(IE)会导致change执行两遍,因为IE认为当你执行JS改变input值时候浏览器会再次执行change事件,
所以正确的处理方式可以先remove input元素 再重新append一个。
1 $input.remove();
2 var html = "<input name='importExcel' id='excel' onchange='aaa();' type='file' multiple='true'/>";
3 $("#import-file").html(html);