這次帶給大家jQuery外掛限制上傳檔案大小與格式使用方法,jQuery外掛限制上傳檔案大小與格式的注意事項有哪些,下面就是實戰案例,一起來看一下。
在客戶端上傳文件,通常需要限製文件的尺寸和格式,最常用的做法是使用某款插件,一些成熟的插件的確界面好看,且功能強大,但美中不足的是:有時候會碰到瀏覽器相容問題。本篇就來寫一個"原生態"的jQuery插件,使之能限制上傳檔案的大小和格式。
首先,寫一個名稱為checkFileTypeAndSize.js的外掛程式。透過判斷目前檔案的後綴名是否被包含在預先設定所允許的後綴名數組中,來限製檔案格式;透過判斷目前檔案在IE以及其它瀏覽器下的尺寸是否大於預先設定所允許的最大檔案尺寸,來限製檔案大小;並提供格式錯誤、超過限制大小以及符合條件的回呼函數。
(function ($) { $.fn.checkFileTypeAndSize = function (options) { //默认设置 var defaults = { allowedExtensions: [], maxSize: 1024, //单位是KB,默认最大文件尺寸1MB=1024KB success: function () { }, extensionerror: function () { }, sizeerror: function () { } }; //合并设置 options = $.extend(defaults, options); //遍历元素 return this.each(function () { $(this).on('change', function () { //获取文件路径 var filePath = $(this).val(); //小写字母的文件路径 var fileLowerPath = filePath.toLowerCase(); //获取文件的后缀名 var extension = fileLowerPath.substring(fileLowerPath.lastIndexOf('.') + 1); //判断后缀名是否包含在预先设置的、所允许的后缀名数组中 if ($.inArray(extension, options.allowedExtensions) == -1) { options.extensionerror(); $(this).focus(); } else { try { var size = 0; if ($.browser.msie) {//ie旧版浏览器 var fileMgr = new ActiveXObject("Scripting.FileSystemObject"); var fileObj = fileMgr.getFile(filePath); size = fileObj.size; //byte size = size / 1024;//kb //size = size / 1024;//mb } else {//其它浏览器 size = $(this)[0].files[0].size;//byte size = size / 1024;//kb //size = size / 1024;//mb } if (size > options.maxSize) { options.sizeerror(); } else { options.success(); } } catch (e) { alert("错误:" + e); } } }); }); }; })(jQuery);
在客戶端的呼叫變得非常簡單。
<input type="file" name="f" id="f"/> @section scripts { <script src="~/Scripts/checkFileTypeAndSize.js"></script> <script type="text/ javascript "> $(function() { $('#f').checkFileTypeAndSize({ allowedExtensions: ['jpg'], maxSize: 10, success: function() { alert('ok'); }, extensionerror: function() { alert('允许的格式为:jpg'); return; }, sizeerror: function() { alert('最大尺寸10kb'); return; } }); }); </script> }
我相信看了本文案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!
推薦閱讀:
以上是jQuery外掛限制上傳檔案大小與格式使用方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!