我试图在运行时创建一个检查文件大小和扩展名的功能,我已经完成了它并在所有浏览器上正常工作,除了9.可以有人让我知道问题在哪里吗?
<script type='text/javascript'>
function showFileSize() {
var input, file;
// (Can't use `typeof FileReader === "function"` because apparently
// it comes back as "object" on some browsers. So just see if it's there
// at all.)
if (!window.FileReader) {
bodyAppend("p", "The file API isn't supported on this browser yet.");
return;
}
input = document.getElementById('fileinput');
if (!input.files[0]) {
bodyAppend("p", "Please select a file before clicking 'Load'");
}
else {
file = input.files[0];
var sFileName = file.name;
var sFileExtension = sFileName.split('.')[sFileName.split('.').length - 1].toLowerCase();
bodyAppend("p", "File Type " + sFileExtension + " is " + file.size + " bytes in size");
}
}
function bodyAppend(tagName, innerHTML) {
var elm;
elm = document.createElement(tagName);
elm.innerHTML = innerHTML;
document.body.appendChild(elm);
}
</script>
<form action='#' onsubmit="return false;">
<input type='file' id='fileinput'>
<input type='button' id='btnLoad' value='Save' onclick='showFileSize();'>
</form>
答案 0 :(得分:0)
IE9不支持HTML5文件API,包括FileReader()
..
可能的解决方法是polyfill,下面的解决方案使用Flash来提供对不支持文件API(IE和Safari)的浏览器上的文件系统的访问,但它不支持drag-n-降强>
答案 1 :(得分:0)
相反,克隆输入,将克隆放在原始位置,然后将原始内容移动到隐藏的表单中。您可能必须使用iframe。
这肯定会奏效但涉及一些编码。