在写页面中常常遇到要上传文件,那么怎么判断文件的格式和大小是否是所需要的呢。
下面这串代码希望对大家有帮助。
<script type="text/javascript">
// 判断图片大小和格式
function getPhotoSize(obj) {
//获取上传文件的后缀名
photoExt = obj.value.substr(obj.value.lastIndexOf(".")).toLowerCase();
if (photoExt != '.jpg' && photoExt != '.png' && photoExt != '.jpeg') {
//因为我这是上传图片文件所以if里判断的是.jpg的后缀要是上传文本改为.txt依此类推
alert("文件格式错误!");
var nf = obj.cloneNode(true);//复制文件格式
nf.value = '';//讲nf设为空值
obj.parentNode.replaceChild(nf, obj);//替换源文件使得该文件变为空值
return false;
}
var fileSize = 0;
//判断浏览器并且是否opera
var isIE = /msie/i.test(navigator.userAgent) && !window.opera;
if (isIE && !obj.files) {
var filePath = obj.value;
//读取本地信息
var fileSystem = new ActiveXObject("Scripting.FileSystemObject");
var file = fileSystem.GetFile(filePath);
fileSize = file.Size;
} else {
fileSize = obj.files[0].size;
}
//转化为Int值
fileSize = Math.round(fileSize / 1024 * 100) / 100;
if (fileSize > 2048) {
alert("不接受超过2m的图片!");
return false;
}
}
</script>
之后在页面里面应用就好了
<input required="required" type="file" name="file1"
accept="image/*" onchange="getPhotoSize(this)" size=40 "/>
其中,var fileSystem = new ActiveXObject(“Scripting.FileSystemObject”);
是启用并返回Automation对象的引用:
Obj = new ActiveXObject( servername.typename[, location]);
- Obj是变量名。
- servername是提供该对象应用的名称。
- typename是要创建的对象的类型或类。
- [, location]是创建该对象的网络服务器的名称。(该项可不写)
该处引用自其他文章,原文章地址为:https://www.jb51.net/article/48538.htm