- 可以使用formData提交含有文件的表单
- 何时会使用到formdata,以及详细用法,请点击此网站
-
formData不兼容 <=ie9
-
<=ie9 提交含有文件的表单,本人还没有好的解决办法,可以使用jquery.form等插件
-
获取提交文件的大小以及类型
input[type='file'].files
是包含多个文件对象的数组,每个对象含有上传文件的相关信息,包含文件名称、大小、类型、修改时间等
- <=ie9 不支持files属性,所以需要写兼容代码获取文件相关信息
- 首先获取当前ie版本
if ((theUA.match(/msie\s\d+/) && theUA.match(/msie\s\d+/)[0]) || (theUA.match(/trident\s?\d+/) && theUA.match(/trident\s?\d+/)[0])) {
var ieVersion = theUA.match(/msie\s\d+/)[0].match(/\d+/)[0] || theUA.match(/trident\s?\d+/)[0];
// ieVersion 就是IE版本
}
- 利用此方法获取上传文件的大小,但是需要ie浏览器做一些设置
try {
var file = input[type='file'];
file.select();
file.blur();
var path = document.selection.createRange().text;
var fso = new ActiveXObject("Scripting.FileSystemObject");
// thisSize就是上传文件的大小
thisSize = fso.GetFile(path).size;
} catch (e) {
alert(e + "\n" + "如果错误为:Error:Automation 服务器不能创建对象;" + "\n" + "请按以下方法配置浏览器:" + "\n" + "请打开【Internet选项-安全-Internet-自定义级别-ActiveX控件和插件-对未标记为可安全执行脚本的ActiveX控件初始化并执行脚本(不安全)-点击启用-确定】");
return window.location.reload();
}
- 获取文件的类型
``` input[type='file'].value```可以获取到上传文件的路径,可以拿路径来截取文件名;当然如果file设置了multiple,value只能获取最后一个文件的路径;
网友评论