尝试过通过var fso = new ActiveXObject("Scripting.FileSystemObject")获取,但是会报错:SCRIPT429: Automation 服务器不能创建对象
浏览器也设置了允许ActiveX控件,怎么办?
需要通过this.files获取什么数据详细描述下,或许有其他替代方案
ie9放弃吧,原生js无法实现获取大小。需要搭配flash来控制,可用webuploader,支持h5就用h5的方法,否则用flash实现。
http://fex.baidu.com/webuploader/doc/index.html
fileSizeLimit {int} [可选] [默认值:undefined]:验证文件总大小是否超出限制, 超出则不允许加入队列。
fileSingleSizeLimit {int} [可选] [默认值:undefined]:验证单个文件大小是否超出限制, 超出则不允许加入队
有帮助麻烦点个采纳【本回答右上角】,谢谢~~有其他问题可以继续交流~
需要获取files的名称、大小、类型
var fso = new ActiveXObject("Scripting.FileSystemObject");
/*
1. 获取文件路径
出于安全性的考虑,低版本IE上传文件时屏蔽了真实的本地文件路径,
以C:\fakepath\**取而代之, 所以默认情况下通过fileEle.value 不能获取到
文件的真实路径.
如果想获取真实路径, 有两种方式:
1. 通过设置IE的安全设置, 即:
Tools(工具) / Internet options(选项) / Security(安全) / Custom level(自定义级别)
找到"Include local directory path when uploading files to a server"
设置为的"Enable"
2. 使用JS获取, 即:
fileEle.select().blur();
var filePath = document.selection.createRange().text;
*/
fileEle.select();
fileEle.blur();
var filePath = document.selection.createRange().text;
/*
FileExists: 判断 文件是否存在
GetFile: 获取文件对象
*/
if(fso.FileExists(filePath)){
fileObj = fso.GetFile(filePath);
}
/*
通过文件对象可以获取文件的基本信息, 如:
*/
console.info("文件类型:" + fileObj.type);
console.info("文件名称:" + fileObj.name);
console.info("文件大小:" + fileObj.size);