国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

javascript實現限制上傳文件大小

2019-11-20 13:12:45
字體:
來源:轉載
供稿:網友

前言:

  項目中經常用到需要上傳文件、照片等功能,同時需要限制所上傳文件的大小。很多插件都會采用后臺請求驗證,前端Js校驗比較少。本篇介紹一個前端JS便捷判斷上傳文件大小的方法。

這個是比較好的

<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>

下面的代碼不建議使用

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

JS代碼:

<script type="text/javascript">    // 判斷是否為IE瀏覽器: /msie/i.test(navigator.userAgent) 為一個簡單正則  var isIE = /msie/i.test(navigator.userAgent) && !window.opera;  function fileChange(target){    var fileSize = 0;    if (isIE && !target.files) {  // IE瀏覽器      var filePath = target.value; // 獲得上傳文件的絕對路徑      /**       * ActiveXObject 對象為IE和Opera所兼容的JS對象       * 用法:       *     var newObj = new ActiveXObject( servername.typename[, location])       *     其中newObj是必選項。返回 ActiveXObject對象 的變量名。       *    servername是必選項。提供該對象的應用程序的名稱。       *    typename是必選項。要創建的對象的類型或類。       *    location是可選項。創建該對象的網絡服務器的名稱。       */////////////////////////////////////////////////////       *   Scripting.FileSystemObject 為 IIS 內置組件,用于操作磁盤、文件夾或文本文件,       *  其中返回的 newObj 方法和屬性非常的多       *  如:var file = newObj.CreateTextFile("C:/test.txt", true) 第二個參表示目標文件存在時是否覆蓋       *  file.Write("寫入內容");  file.Close();       */      var fileSystem = new ActiveXObject("Scripting.FileSystemObject");      // GetFile(path) 方法從磁盤獲取一個文件并返回。      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代碼

復制代碼 代碼如下:

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

  一個 簡單、輕便、快捷 的用JS代碼來判斷文件大小的方法就OK了,至于ActiveXObject對象感興趣的可以去深究,它可以根據入參的不同返回不同的對象,通常該對象的功能和作用也是非常有用和強大的。

本文內容就到這里了,是不是非常簡單實用的代碼呢,希望大家能夠喜歡。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 南川市| 新乐市| 宁武县| 南京市| 汤原县| 龙门县| 宁武县| 林西县| 平泉县| 团风县| 利辛县| 驻马店市| 巩义市| 磴口县| 华安县| 西华县| 乌拉特后旗| 丽水市| 浙江省| 萍乡市| 丰宁| 方正县| 湛江市| 沁水县| 琼结县| 黄骅市| 阿合奇县| 太仓市| 农安县| 舟山市| 泗洪县| 黎平县| 庆云县| 东光县| 青神县| 枝江市| 德江县| 夏河县| 龙陵县| 上林县| 揭阳市|