最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

javascript實(shí)現(xiàn)限制上傳文件大小

 更新時(shí)間:2015年02月06日 08:39:24   投稿:hebedich  
這篇文章主要介紹了javascript實(shí)現(xiàn)限制上傳文件大小的方法和示例,需要的朋友可以參考下

前言:

  項(xiàng)目中經(jīng)常用到需要上傳文件、照片等功能,同時(shí)需要限制所上傳文件的大小。很多插件都會(huì)采用后臺(tái)請(qǐng)求驗(yàn)證,前端Js校驗(yàn)比較少。本篇介紹一個(gè)前端JS便捷判斷上傳文件大小的方法。

這個(gè)是比較好的

<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("不接受此文件類(lèi)型!");
          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("附件不存在,請(qǐng)重新輸入!");
          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>

下面的代碼不建議使用

  代碼很簡(jiǎn)單,關(guān)鍵就是怎么用JS拿到文件然后獲取文件大小,進(jìn)而去判斷攔截。由于各種歷史原因,IE的ActiveX控件因素,獲取文件的方法可能和其他瀏覽器有所不同,所以只需稍加判斷即可。

JS代碼:

<script type="text/javascript">  
  // 判斷是否為IE瀏覽器: /msie/i.test(navigator.userAgent) 為一個(gè)簡(jiǎn)單正則
  var isIE = /msie/i.test(navigator.userAgent) && !window.opera;
  function fileChange(target){
    var fileSize = 0;
    if (isIE && !target.files) {  // IE瀏覽器
      var filePath = target.value; // 獲得上傳文件的絕對(duì)路徑
      /**
       * ActiveXObject 對(duì)象為IE和Opera所兼容的JS對(duì)象
       * 用法:
       *     var newObj = new ActiveXObject( servername.typename[, location])
       *     其中newObj是必選項(xiàng)。返回 ActiveXObject對(duì)象 的變量名。
       *    servername是必選項(xiàng)。提供該對(duì)象的應(yīng)用程序的名稱(chēng)。
       *    typename是必選項(xiàng)。要?jiǎng)?chuàng)建的對(duì)象的類(lèi)型或類(lèi)。
       *    location是可選項(xiàng)。創(chuàng)建該對(duì)象的網(wǎng)絡(luò)服務(wù)器的名稱(chēng)。
       *\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
       *   Scripting.FileSystemObject 為 IIS 內(nèi)置組件,用于操作磁盤(pán)、文件夾或文本文件,
       *  其中返回的 newObj 方法和屬性非常的多
       *  如:var file = newObj.CreateTextFile("C:\test.txt", true) 第二個(gè)參表示目標(biāo)文件存在時(shí)是否覆蓋
       *  file.Write("寫(xiě)入內(nèi)容");  file.Close();
       */
      var fileSystem = new ActiveXObject("Scripting.FileSystemObject");
      // GetFile(path) 方法從磁盤(pán)獲取一個(gè)文件并返回。
      var file = fileSystem.GetFile(filePath);
      fileSize = file.Size;  // 文件大小,單位:b
    }
    else {  // 非IE瀏覽器
      fileSize = target.files[0].size;
    }
    var size = fileSize / 1024 / 1024;
    if (size > 1) {
      alert("附件不能大于1M");
    }
  }
</script>

HTML代碼

復(fù)制代碼 代碼如下:

<input type="file"  style="width: 500px;" onchange="fileChange(this);"/>

  一個(gè) 簡(jiǎn)單、輕便、快捷 的用JS代碼來(lái)判斷文件大小的方法就OK了,至于ActiveXObject對(duì)象感興趣的可以去深究,它可以根據(jù)入?yún)⒌牟煌祷夭煌膶?duì)象,通常該對(duì)象的功能和作用也是非常有用和強(qiáng)大的。

本文內(nèi)容就到這里了,是不是非常簡(jiǎn)單實(shí)用的代碼呢,希望大家能夠喜歡。

相關(guān)文章

  • List Information About the Binary Files Used by an Application

    List Information About the Binary Files Used by an Applicati

    List Information About the Binary Files Used by an Application...
    2007-06-06
  • 最新評(píng)論

    石棉县| 蒲江县| 小金县| 广德县| 乃东县| 清苑县| 福州市| 云梦县| 徐汇区| 易门县| 平阳县| 海阳市| 延津县| 呼和浩特市| 宜春市| 郎溪县| 长泰县| 宝山区| 大厂| 秀山| 铁岭市| 平原县| 米泉市| 从江县| 永平县| 柳州市| 宣汉县| 万源市| 耒阳市| 长岛县| 抚宁县| 平罗县| 霸州市| 灵武市| 平邑县| 堆龙德庆县| 峡江县| 肥乡县| 安宁市| 浙江省| 新竹县|