客户端JS判断文件类型与大小限制上传示例

作者:函数茶馆时间:2026-10-27 17:56:44浏览:75

本文提供一段用于客户端判断文件类型及大小的JavaScript代码示例。该脚本支持IE6至IE8及现代浏览器,通过判断文件后缀限制允许上传的文件格式,并校验文件大小是否超过2M限制,若不符合要求则清空输入框并提示用户。

客户端JS文件上传限制实现

为满足项目需求,需要在客户端通过脚本判断文件大小和文件类型。经过查阅资料,这里整理并测试了一个限制文件上传大小的示例,该代码兼容IE6、IE7、IE8以及Google Chrome、Firefox等主流浏览器。


具体实现代码如下:

 
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript">
var isIE = /msie/i.test(navigator.userAgent) && !window.opera;
function fileChange(target,id) {
var fileSize = 0;
var filetypes =[".jpg",".png",".rar",".txt",".zip",".doc",".ppt",".xls",".pdf",".docx",".xlsx"];
var filepath = target.value;
var filemaxsize = 1024*2;//2M
if(filepath){
var isnext = false;
var fileend = filepath.substring(filepath.indexOf("."));
if(filetypes && filetypes.length>0){
for(var i =0; i<filetypes.length;i++){
if(filetypes[i]==fileend){
isnext = true;
break;
} 
} 
} 
if(!isnext){
alert("不接受此文件类型!");
target.value ="";
return false;
} 
}else{
return false;
} 
if (isIE && !target.files) {
var filePath = target.value;
var fileSystem = new ActiveXObject("Scripting.FileSystemObject");
if(!fileSystem.FileExists(filePath)){
alert("附件不存在,请重新输入!");
return false;
} 
var file = fileSystem.GetFile (filePath);
fileSize = file.Size;
} else {
fileSize = target.files[0].size;
} 
var size = fileSize / 1024;
if(size>filemaxsize){
alert("附件大小不能大于"+filemaxsize/1024+"M!");
target.value ="";
return false;
} 
if(size<=0){
alert("附件大小不能为0M!");
target.value ="";
return false;
} 
} 
</script>
</head>
<body>
<input type="file" name="contractFileName" style="width: 500px;" onchange="fileChange(this);"/>
</body>
</html>
作者最新文章