方案1 :限定大小

<html>
<head>
<script type="text/javascript">
  var isIE = /msie/i.test(navigator.userAgent) && !window.opera;       
  function fileChange(target) {   
    
    var fileSize = 0;        
    if (isIE && !target.files) {    
      var filePath = target.value;    
      var fileSystem = new ActiveXObject("Scripting.FileSystemObject");       
      var file = fileSystem.GetFile (filePath);    
      fileSize = file.Size;   
    } else {   
     fileSize = target.files[0].size;    
     }  
     var size = fileSize / 1024;   
     if(size>10000){
      alert("附件不能大于10M");
      
      
     }
     
}  
</script>
</head>
<body>
<input type="file" name="contractFileName"  style="width: 500px;" onchange="fileChange(this);"/>
</body>
</html>

方案2::限定大小

兼容ie6,ie7,ie8 ,Google Chrome,ff等浏览器,ie8上面在安全设置处设置一下就好了(工具 => Internet选项 => 安全 => Internet => 自定义级别    找到“将文件上载到服务器时包含本地目录路径”,设为“启用”即可)。

function fileChange(target) {   
        var fileSize = 0;        
        if (isIE && !target.files) {    
              var filePath = target.value;   
              var fileSystem = new ActiveXObject("Scripting.FileSystemObject");
              
              if(!fileSystem.FileExists(filePath)){
                 alert("附件不存在,请重新输入!");
                 var file=document.getElementById(id);
                    file.outerHTML=file.outerHTML;
                    return;
              }
              var file = fileSystem.GetFile (filePath);
              fileSize = file.Size;   
        } else {   
               fileSize = target.files[0].size;
        }  
        
        var size = fileSize / 1024;   
        if(size>100000){
                alert("附件大小不能大于100M!");
                var file=document.getElementById(id);
                file.outerHTML=file.outerHTML
        }  
        if(size<=0){
            alert("附件大小不能为0M!");
            var file=document.getElementById(id);
                file.outerHTML=file.outerHTML
        }
     }


限定上传类型

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<head>
<script type="text/javascript">
  var isIE = /msie/i.test(navigator.userAgent) && !window.opera;       
 function fileChange(target) {   
        if(!(/(?:jpg|gif|png|jpeg)$/i.test(target.value))) {
       
            alert(" 只允许上传jpg|gif|png|jpeg格式的图片");
        if(window.ActiveXObject) {//for IE
            target.select();//select the file ,and clear selection
            document.selection.clear();
        } else if(window.opera) {//for opera
            target.type="text";target.type="file";
        } else target.value="";//for FF,Chrome,Safari
            return;
        } else {
            return; //alert("ok");//or you can do nothing here.
        }
     
}  
</script>
</head>
<body>
    <input type="file" name="contractFileName" style="width: 500px;"
        onchange="fileChange(this);" />
</body>
</html>

js 限定上传文件大小 类型的更多相关文章

  1. 兼容各浏览器的js判断上传文件大小

    由于项目需要,在网上找了一个JS判断上传文件大小的程序,经测试兼容IE6-,Firefox10,Opera11.,safari5.,chrome17 <!DOCTYPE html> < ...

  2. js判断上传文件大小

    下面提供三款网页特效判断上传文件大小哦,这三种方法是现在限制文件上传大小比较好的方法,可以在客户上传文件时限制上传文件大小判断处理<!doctype html public "-//w ...

  3. js检测上传文件大小

    前言: 项目中经常用到需要上传文件.照片等功能,同时需要限制所上传文件的大小.很多插件都会采用后台请求验证,前端Js校验比较少.本篇介绍一个前端JS便捷判断上传文件大小的方法. 代码很简单,关键就是怎 ...

  4. 经典JS 判断上传文件大小和JS即时同步电脑时间

    我也是新手,还是一个JS笨,有一些网站要实现的功能要自己写么? 答案是不会,去问同事大佬吧,闲简单.就在晚上看了一些其他大佬们写的JS效果, 代码很少.占用网站CPU也小的多.可以一用, 废话少扯.代 ...

  5. JS判断上传文件类型

    /*   * 判断图片类型   */    function checkImgType(ths){        if (ths.value == "") {            ...

  6. js限制上传文件类型和大小

    <html> <head> <script type="text/javascript"> function fileChange(target ...

  7. jquery实现上传文件大小类型的验证

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...

  8. 前端js限制上传文件类型及大小(1)

    <html> <head> <meta http-equiv="Content-Type" content="text/html; char ...

  9. JS 判断上传文件类型

    var video_src_file = $("#video_src_file").val(); var fileTypes = new Array("flv" ...

随机推荐

  1. Linux Watchdog Test Program

    /*********************************************************************** * Linux Watchdog Test Progr ...

  2. jQuery的datatable怎么才能给某一列添加超链接?

    aocolumeDef.这个里面去定义.return返回的字符串会代替原来cell里面的内容 e.g: datatable=$('#dt_basic').dataTable({ "bAuto ...

  3. 省常中模拟 Test3 Day2

    matrix 找规律 题意:给定一个 N*N 的只有 0 和 1 的矩阵,有 Q 个操作,分三种:1. 将某行上的所有数字取反:2. 将某列上的所有数字取反:3. 输出 sum{ a[i][j]*a[ ...

  4. 基于RTP的H264视频数据打包解包类

    from:http://blog.csdn.net/dengzikun/article/details/5807694 最近考虑使用RTP替换原有的高清视频传输协议,遂上网查找有关H264视频RTP打 ...

  5. 实现推送功能APP端需要完成的工作

    推送功能简介 实现推送的流程如下: 从APP注册推送功能,到APNS服务器发送推送消息给设备,有五个步骤. 一旦推送注册完成,应用自身的服务器以provider的身份提供推送. APP端实现 在代码方 ...

  6. Android 实现emoji表情的demo

    Android 实现emoji表情的例子,网上看到的,记录一下. 请看下图 : 项目下载地址:http://download.csdn.net/detail/abc13939746593/741397 ...

  7. .NET之美——C# 中的委托和事件

    C# 中的委托和事件 文中代码在VS2005下通过,由于VS2003(.Net Framework 1.1)不支持隐式的委托变量,所以如果在一个接受委托类型的位置直接赋予方法名,在VS2003下会报错 ...

  8. 总结c++ primer中的notes

    转载:http://blog.csdn.net/ace_fei/article/details/7386517 说明: C++ Primer, Fourth Edition (中英文)下载地址:htt ...

  9. SQL Server 高性能写入的一些总结(转)

    1.1.1 摘要 在开发过程中,我们不时会遇到系统性能瓶颈问题,而引起这一问题原因可以很多,有可能是代码不够高效.有可能是硬件或网络问题,也有可能是数据库设计的问题. 本篇博文将针对一些常用的数据库性 ...

  10. 使用Qmake在树莓派上开发Opencv程序

    Qt 安装 PC 端  下载安装即可 https://mirrors.ustc.edu.cn/qtproject/official_releases/qt 树莓派:Qt开发套件和opencv安装sud ...