客户端js判断上传文件类型和文件大小
2016-03-12 15:59
776 查看
由于项目需要,需要脚本在客户端判断上传文件大小和类型!兼容ie6,ie7,ie8 ,Google Chrome,ff等浏览器
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript">
//判断当前浏览器是否为IE浏览器
var isIE = /msie/i.test(navigator.userAgent) && !window.opera;
function fileChange(target) {
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;
//IE浏览器要在javascript中实现文件操作功能,主要就是依靠FileSystemobject对象
var fileSystem = new ActiveXObject("Scripting.FileSystemObject");
if(!fileSystem.FileExists(filePath)){
alert("附件不存在,请重新输入!");
return false;
}
var file = fileSystem.GetFile (filePath);
fileSize = file.Size;
} else {
//对于支持 HTML5 FileAPI 的浏览器 (IE10, FF 3.6+, Chrome 13+, Safari 5+, Opera 11.1+),可以直接使用 files[0].size。这些属性属于 DOM
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>
原文链接:http://www.jb51.net/article/43498.htm
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript">
//判断当前浏览器是否为IE浏览器
var isIE = /msie/i.test(navigator.userAgent) && !window.opera;
function fileChange(target) {
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;
//IE浏览器要在javascript中实现文件操作功能,主要就是依靠FileSystemobject对象
var fileSystem = new ActiveXObject("Scripting.FileSystemObject");
if(!fileSystem.FileExists(filePath)){
alert("附件不存在,请重新输入!");
return false;
}
var file = fileSystem.GetFile (filePath);
fileSize = file.Size;
} else {
//对于支持 HTML5 FileAPI 的浏览器 (IE10, FF 3.6+, Chrome 13+, Safari 5+, Opera 11.1+),可以直接使用 files[0].size。这些属性属于 DOM
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>
原文链接:http://www.jb51.net/article/43498.htm
相关文章推荐
- 《JS高程》数据类型学习笔记
- 你不知道的JavaScript--Item33 跨域总结与解决办法
- ext 学习 - spket插件的安装
- iOS7新JavaScriptCore框架入门介绍
- 封装getByClass(JS获取class的方法封装为一个函数)
- js 九九乘法表
- js对象定义,表格数据转成json上传提交
- 七大排序算法总结 JavaScript <堆还没写…………待续>
- jsp原理(理解)
- Js的typeof和Js的基本数据类型
- js-DOM给class追加一个新的元素
- JS判断浏览器类型与版本
- JavaScript在网页中出现的位置
- JavaScript中操作有些DOM时关于文本节点和元素节点的问题。
- Web存储——IndexedDB的使用(二)
- JSP 如何使验证码文件 点击刷新效果
- 初识JavaScript
- 【红宝书笔记】一点关于JS的垃圾回收机制
- jsp 页面和 jsp标记
- js将echarts图表转换成base64位格式编码的图片