Предисловие:
Он часто используется в проектах для загрузки файлов, фотографий и других функций, а размер загруженных файлов должен быть ограничен. Многие плагины будут использовать проверку фоновых запросов, а проверка JS Front-End относительно невелика. В этой статье представлен метод JS Front-End, чтобы легко оценить размер файла загрузки.
Это лучше
<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; перерыв; }}} if (! isnext) {alert ("Этот тип файла не принимается!"); target.value = ""; вернуть ложь; }} else {return false; } if (isie &&! target.files) {var filePath = target.value; var fileSystem = new ActiveXObject ("scripting.filesySteMobject"); if (! fileystem.fileexists (filePath)) {alert («Приложение не существует, пожалуйста, повторно введите!»); вернуть ложь; } var file = fileystem.getFile (filePath); filesize = file.size; } else {filesize = target.files [0] .size; } var size = fileSize / 1024; if (size> fileMaxSize) {alert («Размер прикрепления не может быть больше, чем" + fileMaxSize / 1024 + "M!"); target.value = ""; вернуть ложь; } if (size <= 0) {alert ("Размер прикрепления не может быть 0M!"); target.value = ""; вернуть ложь; }} </script> </head> <body> <input type = "file" name = "contragtFilename" Onchange = "fileChange (this);"/> </body> </html>Следующий код не рекомендуется
Код очень прост. Ключ заключается в том, как использовать JS для получения файла и получить размер файла, а затем судить и перехватить его. По различным историческим причинам, IE ActiveX Factors и метод получения файлов могут отличаться от других браузеров, поэтому требуется лишь небольшое суждение.
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) {// т.е. браузер var filepath = target.value; // Получить абсолютный путь к загруженному файлу/** * ActiveXObject Объект JS -объект, совместимый с IE и Opera * Использование: * var newoBj = new ActiveXObject (servername.typename [, location]) * где NewObj является необходимым вариантом. Возвращает имя переменной объекта ActivexObject. * ServerName является обязательным. Предоставляет имя приложения, что объект. * Typename является обязательным. Тип или класс объекта, который будет создан. * Местоположение необязательно. Имя сетевого сервера, который создал объект. *//////////////////////////////////////////////////////////////////////////////////////////////////// * Scripting.FileSystemObject is a built-in Компонент IIS, используемый для эксплуатации дисков, папок или текстовых файлов,* Существует множество методов и атрибутов NewObj, возвращаемых в нем* Например: var file = newobj.createTextFile ("c: /test.txt", true). Второй параметр указывает, является ли целевой файл перезаписан, когда он существует* file.writte ("написать содержание"); file.close (); */ var fileSystem = new ActiveXObject ("scripting.filesystemobject"); // Метод GetFile (PATH) получает файл с диска и возвращает. var file = fileystem.getFile (filePath); filesize = file.size; // размер файла, единица: b} else {// uncie browser filessize = target.files [0] .size; } var size = filesize / 1024 /1024; if (size> 1) {alert («Приложение не может быть больше 1м»); }} </script>HTML -код
Кода -копия выглядит следующим образом:
<input type = "file" onchange = "fileChange (this);"/>
Простой, легкий и быстрый метод использования кода JS для суждения размера файла в порядке. Что касается тех, кто заинтересован в объектах ActivexObject, вы можете пойти глубже. Он может возвращать разные объекты в соответствии с введенными параметрами. Обычно функции и функции объекта также очень полезны и мощны.
Это все для этой статьи. Это очень простой и практичный код? Надеюсь, вам понравится.